首页 > 代码库 > 第七次作业
第七次作业
1. 定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
1 #include<stdio.h> 2 int isprime(int n); 3 int main() 4 { 5 int i,c; 6 c=0; 7 for(i=2;i<=1000;i++) 8 { 9 if(isprime(i)) 10 { 11 c=c+1; 12 printf("%03d ",i); 13 if(c%10==0) 14 { 15 printf("\n"); 16 } 17 } 18 } 19 printf("\n1000以内有%d个质数",c); 20 return 0; 21 } 22 int isprime(int n) 23 { 24 int i; 25 for(i=2;i<=n-1;i++) 26 { 27 if(n%i==0) 28 { 29 return 0; 30 } 31 } 32 return 1; 33 }
2.求两个正整数的最大公约数和最小公倍数。用一个函数gcd(int a,int b)求最大公约数,另一个函数lcm(int a,int b)根据求出的最大公约数求最小公倍数。
1 #include<stdio.h> 2 int gcd(int a,int b); 3 int lcm(int a,int b); 4 int main() 5 { 6 int a,b,x,y; 7 printf("输入两个正整数,求其最大公约数和最小公倍数\n"); 8 scanf("%d%d",&a,&b); 9 if(a<=0||b<=0) 10 { 11 printf("输入错误\n"); 12 } 13 else 14 { 15 x=gcd(a,b); 16 y=lcm(a,b); 17 printf("最大公约数为%d,最小公倍数为%d\n",x,y); 18 } 19 return 0; 20 } 21 int gcd(int a,int b) 22 { 23 int x; 24 if(a<b) 25 { 26 x=a; 27 a=b; 28 b=x; 29 } 30 while(b!=0) 31 { 32 x=a%b; 33 a=b; 34 b=x; 35 } 36 return a; 37 } 38 int lcm(int a,int b) 39 { 40 int x; 41 x=a*b/gcd(a,b); 42 return x; 43 }
3.编写一个函数fun(double x)求表达式x2-5x+4的值,x作为参数传给函数。在主函数中调用该函数求下列式子的值:
y1= 22-5*2+4
y2= (x+15)2-5*(x+15)+4
y3= sin2x-5*sinx+4
求y3用数学函数 sin(x) 头文件math.h
求解y2和y3时需要输入x的值。
样例:
y1=-2, x=0.5时,y2=166.75,y3=1.832721
1 #include<stdio.h> 2 #include<math.h> 3 double fun(double x); 4 int main() 5 { 6 double x,y1,y2,y3; 7 printf("输入x\n"); 8 scanf("%lf",&x); 9 y1=fun(2); 10 y2=fun(x+15); 11 y3=fun(sin(x)); 12 printf("y1=%lf,y2=%lf,y3=%lf",y1,y2,y3); 13 return 0; 14 } 15 double fun(double x) 16 { 17 int y; 18 y=x*x-5*x+4; 19 return y; 20 }
4.用函数实现:火柴棍等式问题。
1 #include<stdio.h> 2 int gen(int a); 3 int main() 4 { 5 int a,b,c; 6 for(a=0;a<=9;a=a+1) 7 { 8 for(b=0;b<=9;b=b+1) 9 { 10 c=a+b; 11 if(c>9) 12 { 13 break; 14 } 15 if(gen(a)+gen(b)+gen(c)==12) 16 { 17 printf("%d+%d=%d\n",a,b,c); 18 } 19 } 20 } 21 return 0; 22 } 23 int gen(int a) 24 { 25 int x; 26 switch(a) 27 { 28 case 0:x=6;break; 29 case 6:x=6;break; 30 case 9:x=6;break; 31 case 2:x=5;break; 32 case 3:x=5;break; 33 case 5:x=5;break; 34 case 7:x=3;break; 35 case 8:x=7;break; 36 case 1:x=2;break; 37 case 4:x=4;break; 38 } 39 return x; 40 }
二、知识点总结:
1.自定义函数默认是int型数据。
2.自定义函数里的变量和主函数里的变量没关联。
3.函数的返回值一般是通过return语句返回到主调函数的。
4.一般情况下,函数中不能有输入输出的语句。
5.注意#include <math.h>的使用。
三、实验总结:
1.函数体内不能嵌套函数。
2.用到数学函数时,记得加头文件math.h。
3.在开头写明用到的函数,方便查找。
4.定义类型应该和输入输出类型保持一致。
第七次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。