实验三
Part1: 验证性内容
分别运行程序demo5_1.cpp和demo5_2.cpp,结合运行结果,对比和理解控制语句continue和break的功能。
demo5_1
#include <stdio.h> int main() { int i; for(i=1; i<=5; i++) { if (i%3 == 0) continue; printf("i=%d\n",i); } return 0; }
运行结果:
demo5_2
#include <stdio.h> int main() { int i; for(i=1; i<=5; i++) { if (i%3 == 0) break; printf("i=%d\n",i); } return 0; }
运行结果:
continue:结束本次循环,进入下一次循环。
break:结束本层循环。
分别运行程序demo6_1.cpp和demo6_2.cpp,结合运行结果,对比和理解在嵌套的循环中控制语句。
demo6_1
#include<stdio.h> const int LINE=3; const int COLUME=5; int main(){ int line; int col; for(line=1;line<=LINE;line++){ for(col=1;col<=COLUME;col++){ if(col%3==0) continue; printf("%5d",col); } printf("\n"); } return 0; }
运行结果:
demo6_2
#include<stdio.h> const int LINE=3; const int COLUME=5; int main(){ int line; int col; for(line=1;line<=LINE;line++){ for(col=1;col<=COLUME;col++){ if(col%3==0) break; printf("%5d",col); } printf("\n"); } return 0; }
运行结果:
在两层嵌套循环中,内层循环中如果出现continue或break,都不影响外层循环。
Part2: 补足程序,使得程序运行
编程找出5个整数中的最大数和最小数,并输出找出的最大数和最小数。
#include<stdio.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); return 0; }
运行结果:
for循环改写:
#include<stdio.h> int main(){ int number,max,min,n; n=1; printf("输入第%d个数:", n); scanf("%d,", &number); max=number; min=number ; for(n=2;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); return 0; }
运行结果:
Part3:编程练习
编程输出101~200之间所有素数,并输出这一区间内素数个数。
#include<stdio.h> #include<math.h> int main(){ int n,m,i,k=0; for(n=101;n<=200;n++){ m=sqrt(n); for(i=2;i<=m;i++){ if(n%i==0)break; } if(i>m) printf("%5d",n); else continue; k++; if(k%5==0) printf("\n"); } printf("\n101~200之间共有%d个素数.",k); return 0; }
运行结果:
编程打印输出如下图案。
#include<stdio.h> const int LINE=5; int main(){ int line,m,n,a,b; for(line=1;line<=5;line++){ m=5-line; n=2*line-1; for(a=1;a<=m;a++) printf(" "); for(b=1;b<=n;b++) printf("*"); printf("\n"); } return 0; }
运行结果:
实验总结与体会:
这次试验比前两次难一些,也借此机会对循环结构有了更深入的了解。三种循环设置条件的时候略有不同,还是需要多试来掌握规律。
找素数的那道题参考了书上判别素数的方法,但还是在循环的语句上摸索了挺久的,好在最后运行出了正确的结果,还是很开心的。
学到的东西越来越多了,希望自己可以抽出更多时间来练习和熟悉它们。
评阅:
https://www.cnblogs.com/qwer9107/p/10720286.html
https://www.cnblogs.com/333y/p/10719894.html
https://www.cnblogs.com/mjc217/p/10714147.html