实验结论
- 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