第七次作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七次作业相关的知识,希望对你有一定的参考价值。
一、实验内容
1. 实验要求
定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
代码
1 #include<stdio.h> 2 int isprime(int x); 3 void main() 4 { 5 int x,n=0; 6 for(x=2;x<=1000;x++) 7 { 8 if(isprime(x)) 9 { 10 printf("%5d",x); 11 n++; 12 if(n%10==0) 13 printf("\\n"); 14 } 15 } 16 printf("共%d个\\n",n); 17 } 18 int isprime(int x) 19 { 20 int i; 21 for(i=2;i<x;i++) 22 { 23 if(x%i==0) 24 break; 25 } 26 if(x==i) 27 return x; 28 else 29 return 0; 30 }
运行结果
2.实验要求
求两个正整数的最大公约数和最小公倍数。用一个函数gcd(int a,int b)求最大公约数,另一个函数lcm(int a,int b)根据求出的最大公约数求最小公倍数。
代码
1 #include<stdio.h> 2 int main() 3 { 4 int x,y; 5 printf("输入两个不相等的正整数,并用空格隔开\\n"); 6 scanf("%d%d",&x,&y); 7 while(x<=0||y<=0||x==y) 8 { 9 printf("错误,重新输入\\n"); 10 scanf("%d%d",&x,&y); 11 } 12 printf("最大公约数是%d,最小公倍数是%d\\n",gcd(x,y),lcm(x,y)); 13 } 14 /*最大公约数*/ 15 int gcd(int x,int y) 16 { 17 int z; 18 while(y!=0) 19 { 20 z=x%y; 21 x=y; 22 y=z; 23 } 24 return x; 25 } 26 /*最小公倍数*/ 27 int lcm(int x,int y) 28 { 29 return x/gcd(x,y)*y; 30 }
运行结果
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 y3; 7 int x,y1,y2; 8 scanf("%d",&x); 9 y1=fun(2); 10 y2=fun(x+15); 11 y3=fun(sin(x)); 12 printf("y1=%d,y2=%d,y3=%lf",y1,y2,y3); 13 } 14 double fun(double x) 15 { 16 double i; 17 i=x*x-x*5+4; 18 return i; 19 }
运行结果
4.实验要求
用函数实现:火柴棍等式问题。
代码
1 #include<stdio.h> 2 int gen(int x); 3 int main() 4 { 5 int x,y,z,i; 6 for(x=0;x<=9;x++) 7 { 8 for(y=0;y<=9;y++) 9 { 10 for(z=0;z<=9;z++) 11 { 12 if(x+y==z&&gen(x)+gen(y)+gen(z)==12) 13 { 14 printf("%d+%d=%d ",x,y,z); 15 } 16 } 17 } 18 } 19 } 20 int gen(int (x)) 21 { 22 int i; 23 switch(x) 24 { 25 case 1:i=2;break; 26 case 7 :i=3;break; 27 case 4 :i=4;break; 28 case 5 : 29 case 3 : 30 case 2 :i=5;break; 31 case 6 : 32 case 9 : 33 case 0 :i=6;break; 34 case 8 :i=7;break; 35 } 36 return i; 37 }
运行结果
二、知识点总结
1.自定义函数默认类型为int
2.自定义函数里目前不能输入和输出
3.自定义函数里的变量与主函数里的变量没有关系
4.自定义函数之间可以自由调用
三、实验总结
1.除了%3d后加空格隔开,也可以%4d或%5d隔开
2.王晓琛让我掌握计算机的思想,但是我更愿意宏观对比相同点不同点,为我所用
以上是关于第七次作业的主要内容,如果未能解决你的问题,请参考以下文章