实验结论
- Part2: 补足程序,使程序符合题目要求并正确运行
- 编程找出5个整数中的最大数和最小数,并输出找出的最大数和最小数。
完整代码如下:
#include <stdio.h> #include <stdlib.h> int main() { int number, max, min, n; n=1; printf("输入第%d个数: ", n); scanf("%d", &number); max = number; min = number; while(n<5) { n++; printf("输入第%d个数: ", n); scanf("%d", &number); if(number>max) max = number; else if(number<min) min = number; } printf("最大数为: %d\n", max); printf("最小数为: %d\n", min); system("pause"); return 0; }
运行结果如下:
- Part3: 编程练习
- 编程输出101-200之间所有素数,并输出这一区间内素数个数。
完整代码如下:
//编程输出101-200之间所有素数,并输出这一区间内素数个数。 #include <stdio.h> #include <math.h> int isprime(int n); int main(){ int n,a=0,b; for(n=101;n<200;n++){ if (isprime(n)){ printf ("%d ",n); a=a+1; b=b+1; if(b%5==0) //一行5个 printf("\n"); } } printf("\n101-200之间共有%d个素数",a); return 0; } int isprime (int n){ int k; for(k=2;k<=sqrt(n);k++) if(n%k==0) return 0; return 1; }
运行结果如下:
2.将一个长整型数s的每一数位上的奇数依次取出来,构成一个新的数,起高位仍在高位,低位仍在低位,例如,s=20199102时,t中的值为1991。
完整代码如下:
#include<stdio.h> int main(){ int a,b,c,t=0,p=1; printf("请输入一个整数:"); scanf("%d",&a); for(b=10;a>0;a=a/10){ //取出各个数 c=a%b; if(c%2){ //判断是否奇数 t=t+c*p; //正序 p=p*10; } } printf("%d",t); return 0; }
运行结果如下:
拓展(*选做*):参考「Part1: 验证性内容」中的一元二次方程求解练习,修改上述程序,使得它可以实现多组判断,直到用户按下Ctrl+D或Ctrl+E结束。
#include<stdio.h> #include <stdlib.h> int main(){ int a,b,c,t=0,p=1; printf("请输入一个整数:\n"); while(scanf("%d",&a)){ t=0; p=1; for(b=10;a>0;a=a/10){ //取出各个数 c=a%b; if(c%2){ //判断是否奇数 t=t+c*p; //正序 p=p*10; } } printf("%d\n",t); printf("请输入一个整数:\n"); } system("pause"); return 0; }
运行结果如下:
3.编写程序,实现从键盘上输入n和a,根据公式s=1/a+2/aa+3/aaa+…+n/(a..a)计算s的值,并输出。
完整代码如下:
//编写程序,实现从键盘上输入n和a,根据公式s=1/a+2/aa+3/aaa+…+n/(a..a)计算s的值,并输出。 #include <stdio.h> int main (){ double a,s,t,m=0; int b,n; printf("输入n和a:"); scanf("%d%lf",&n,&a); for(b=1,s=0;b<=n;b=b+1){ m=a+m*10; //分母 t=b/m; //每项值 s=s+t; //和 } printf("s的值为%lf\n",s); return 0; }
运行结果如下:
拓展(*选做*):参考「Part1: 验证性内容」中的一元二次方程求解练习,修改上述程序,使得它可以实现多组判断,直到用户按下Ctrl+D或Ctrl+E结束。
完整代码如下:
//编写程序,实现从键盘上输入n和a,根据公式s=1/a+2/aa+3/aaa+…+n/(a..a)计算s的值,并输出。 #include <stdio.h> int main (){ double a,s,t,m=0; int b,n; printf("输入n和a:"); while(scanf("%d%lf",&n,&a)!=EOF){ m=0; for(b=1,s=0;b<=n;b=b+1){ m=a+m*10; //分母 t=b/m; //每项值 s=s+t; //和 } printf("s的值为%lf\n",s); printf("输入n和a:"); } return 0; }
运行结果如下:
实验总结与体会
1、感觉比上次好多了(或许是题不太复杂脑子还够用QAQ),求和那个以为分母是a*a..的那种形式(我也太蠢了叭啊啊啊啊)。
2、感觉用了函数会使代码干净不少(毕竟main里的东西少了啊),but!写函数还不是很熟练诶...
3、上次某位小可爱说的花括号的形式这次有在注意诶!(憨憨笑)
4、上周被高数榨干了,C语言实验课都没咋预习,代码也没有敲几个玩玩(反思ing..),咸鱼翻身计划又双叒叕被搁置(喂!醒醒!)
5、还是很想试试用已经学过的知识写一些有趣的代码的(老师课上给些推荐呗~~)
来源:https://www.cnblogs.com/chris2001/p/11871929.html