第七次作业
Posted 趁早
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七次作业相关的知识,希望对你有一定的参考价值。
一、实验内容
1、实验要求: 定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
代码:
#include<stdio.h> int isprime(int x); int main() { int i,n=0; for(i=1;i<=1000;i++) { if(isprime(i)==1) { printf("%4d",i); n++; if(n%10==0) { printf("\\n"); } } } printf("\\n"); printf("一共有%d个素数\\n",n); return 0; } int isprime(int x) { int i; for(i=2;i<=x-1;i++) { if(x%i==0) return 0; } return 1; }
程序运行结果:
2、实验要求:求两个正整数的最大公约数和最小公倍数。用一个函数gcd(int a,int b)求最大公约数,另一个函数lcm(int a,int b)根据求出的最大公约数求最小公倍数。
代码:
#include<stdio.h> int ged(int m,int n); int lcm(int m,int n); int main() { int a,b,m,n; printf("请输入两个整数:\\n"); scanf("%d%d",&a,&b); m=ged(a,b); n=lcm(a,b); printf("最大公约数是%d,最小公倍数是%d\\n",m,n); return 0; } int ged(int m,int n) { int c1; if(m==n) c1=m; else { while(m!=n) { if(m>n) m=m-n; else n=n-m; } c1=m; } return c1; } int lcm(int m,int n) { int c2; c2=m*n/ged(m,n); return c2; }
程序运行结果:
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
代码:
# include <stdio.h> # include <math.h> double fun(double x); int main() { int y1; double y2,y3,x; printf("请输入一个值:\\n"); scanf("%lf",&x); y1=fun(2); y2=fun(x+15); y3=fun(sin(x)); printf("y1=%d,x=%lf时,y2=%.2lf,y3=%.6lf\\n",y1,x,y2,y3); return 0; } double fun(double x) { double y; y=x*x-5*x+4; return y; }
程序运行结果:
4、实验要求:用函数实现:火柴棍等式问题。
有16根火柴,可以拼出多少个形如“A+B=C”的等式,A、B、C是用火柴棍拼出的整数,且为一位数,输出该等式形式。
注意: 1. 加号与等号各自需要两根火柴棍 2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. 16根火柴棍必须全部用上。
代码:
# include <stdio.h> int change(int n); int main() { int a,b,c,x,y,z,m; for(x=0;x<=9;x++) { a=change(x); for(y=0;y<=9;y++) { b=change(y); z=x+y; c=change(z); if(a+b+c==12&&c<=9) { printf("%d+%d=%d\\n",x,y,z); } } } } int change(int n) { int m; if(n==1) { m=2; } else if(n==2||n==3||n==5) { m=5; } else if(n==4) { m=4; } else if(n==6||n==9||n==0) { m=6; } else if(n==7) { m=3; } else { m=7; } return m; }
程序运行结果:
二、知识点总结:
1、函数的返回值一般是通过return语句返回到主调函数的;
2、参数传递是单向传递的;
3、函数不能嵌套;
4、调用函数:
①、实参表可以包含多个实参,各参数间用逗号隔开,实参可以是常量、变量,表达式;
②、如果是调用无参函数,则“实参表”可以为空,但括弧不能省略;
③、实参与形参的个数应相等,类型应一致;
三、实验总结
1、一般情况下,函数中不能有输入输出的语句;
2、函数声明前要加分号;
3、函数中return语句中注意返回哪个值;
以上是关于第七次作业的主要内容,如果未能解决你的问题,请参考以下文章