Part2:
#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:
练习一:
#include<stdio.h> #include<math.h> int isprime(int n); int main() { int i,m=0; for(i=101;i<=200;i++) { if(isprime(i)) { printf("%4d",i); m++; } } printf("101~200之间共有%d个素数\n",m); return 0; } int isprime(int n) { int k; for(k=2;k<=sqrt(n);k++) if(n%k==0) return 0; return 1; }

练习二:
#include<stdio.h> int main() { long int s; int t, sum=0, a=10,b=1,n=1,m=1; scanf("%ld",&s); while(s/a!=0){ a=10*a; n++; } while(m<=n){ t=s%10; if(t%2!=0){ sum=sum+b*t; b=10*b; } s=s/10; m++; } printf("%ld",sum); return 0; }

拓展:
#include<stdio.h> int main() { long int s; int t, sum=0, a=10,b=1,n=1,m=1; while(scanf("%ld",&s)){ int t, sum=0, a=10,b=1,n=1,m=1; while(s/a!=0){ a=10*a; n++; } while(m<=n){ t=s%10; if(t%2!=0){ sum=sum+b*t; b=10*b; } s=s/10; m++; } printf("%ld\n",sum); } return 0; }

练习三:
#include<stdio.h> int main(){ int n,a,c=1; float m=0,t=1,s=0; printf("Enter n and a:\n"); scanf("%d%d",&n,&a); while(t<=n){ m=m+c*a; s=s+t/m; c=10*c; t++; } printf("s=%f\n",s); return 0; }

拓展:
#include<stdio.h> int main(){ int n,a,c=1; float m=0,t=1,s=0; printf("Enter n and a:\n"); ; while(scanf("%d%d",&n,&a)){ while(t<=n){ m=m+c*a; s=s+t/m; c=10*c; t++; } printf("s=%f\n",s); } return 0; }

实验与总结:
通过本次实验,对于while的使用更熟练了,也知道了如何连续输出;
踩得坑有,在练习三中定义未知数时没有注意到整形还是浮点型,导致结果一直是零
拓展中没有把定义一起包含在while中
问题有:在实验二中数据长一点,结果就变成负数,不是很懂为什么
拓展里弄成连续输出,在实验二需要把定义放在里面,实验三我没有放,似乎也能行?
原文:https://www.cnblogs.com/syl123/p/11853987.html