第七次作业
一,
实验要求:定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
代码:
#include <stdio.h> int isprime(int n); int isprime(int n) { int m; for(m=2;m<=n-1;m++) { if(n%m==0) { return 0; } } return 1; } int main() { int x,y=0; for(x=2;x<=1000;x++) { if(isprime(x)) { printf("%3d ",x); y++; if(y%10==0) { printf("\n"); } } } printf("\n%d",y); return 0; }
二,
实验要求:求两个正整数的最大公约数和最小公倍数。用一个函数gcd(int a,int b)求最大公约数,另一个函数lcm(int a,int b)根据求出的最大公约数求最小公倍数。
代码:
#include<stdio.h> int gcd(int a,int b); int gcd(int a,int b) { int x,y; if(b>a) { x=b,b=a;a=x; } while((y=a%b)!=0) { a=b; b=y; } return b; } int lcm(int a,int b); int lcm(int a,int b) { int c; c=(a*b)/gcd(a,b); return c; } int main() { int a,b,c,d; printf("请输入两个正整数,用逗号隔开\n"); scanf("%d,%d",&a,&b); c=gcd(a,b); printf("这两个正整数的最大公约数为%d\n",c); d=lcm(a,b); printf("这两个正整数的最小公倍数为%d\n",d); return 0; }
三,
实验要求:
编写一个函数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
代码:
# include <stdio.h> # include <math.h> float fun (double x); float fun (double x) { float y; y=x*x-5*x+4; return y; } int main() { float x,y,z,a,b,c; printf ("请输入x的值\n"); scanf ("%f",&x); y=x+15; z=sin(x); a=fun(x); b=fun(y); c=fun(z); printf ("%f,%f,%f\n",a,b,c); }
四,
实验要求:用函数实现:火柴棍等式问题。
代码:
#include<stdio.h> int huochai(int n); int huochai(int n) { switch(n) { case 0:case 6:case 9:n=6;break; case 2:case 3:case 5:n=5;break; case 4:n=4;break; case 1:n=2;break; case 7:n=3;break; case 8:n=7;break; } return n; } int main() { int n1,n2,n3; for(n1=0;n1<=9;n1++) for(n2=0;n2<=9;n2++) { n3=n1+n2; if(n3>9) { break; } if(12==huochai(n1)+huochai(n2)+huochai(n3)) { printf("%d+%d=%d\n",n1,n2,n3); } } return 0; }
知识点总结
一,void没有返回值
二,注意返回值
实验总结
一,函数前面没有函数类型默认为int类型