实验三
Part 1. 验证性内容
在循环中使用break与continue的区别
1.
#include <stdio.h> int main() { int i; // 在循环语句中使用break for(i=1; i<=5; i++) { if (i%3 == 0) // 如果i是3的倍数,则结束整个循环 break; printf("i=%d\n",i); } return 0; }

#include <stdio.h> int main() { int i; // 在循环语句中使用continue for(i=1; i<=5; i++) { if (i%3 == 0) // 如果i是3的倍数,则结束本次循环,开始下一次循环 continue; printf("i=%d\n",i); } return 0; }

总结:在循环语句中,break语句的作用是结束本层循环,转而执行本层循环语句后的语句,在例一中,在n=3时结束本次循环,即停止程序:而continue语句是指跳过循环体中位于该语句后的所有句,提前结束本次循环并开始新一轮的循环,所以跳过了n=3时的结果,继续进行循环n=4,和n=5
2.在嵌套语句中break与continue的不同
#include <stdio.h> const int LINE=3; // 定义符号常量LINE const int COLUME=5; // 定义符号常量COLUME int main() { int line; // 定义变量line, 用来控制行数 int col; // 定义变量col, 用来控制列数 // 输出LINE行信息 for(line=1; line<=LINE; line++) { // 每一行中,利用循环,输出各列信息 for(col=1; col<=COLUME; col++) { if(col%3 == 0) // 如果col是3的倍数,则结束本次循环,开始下一次循环 continue; printf("%5d", col); } printf("\n"); // 每输出完一行,换行 } return 0; }

#include <stdio.h> const int LINE=3; // 定义符号常量LINE const int COLUME=5; // 定义符号常量COLUME int main() { int line; // 定义变量line, 用来控制行数 int col; // 定义变量col, 用来控制列数 // 输出LINE行信息 for(line=1; line<=LINE; line++) { // 每一行中,利用循环,输出各列信息 for(col=1; col<=COLUME; col++) { if(col%3 == 0) // 如果col是3的倍数,则结束内层循环体 break; printf("%5d", col); } printf("\n"); // 每输出完一行,换行 } return 0; }

总结:在嵌套语句中,break语句仍旧为结束循环语句,即在做每一行的循环语句中遇到第三次循环n=3时停止内循环,转而执行外循环,换行开始下一次每一行的循环,得到两列;continue语句中跳过了每一行n=3时的输出,所以仅输出n=1,2,4,5
Part 2.补足程序,使得程序运行
#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; }

Part 3.编程输出101~200之间的所有素数,并输出这一区间素数的个数
/*编程输出101~200之间的所有素数, 并输出这一区间内的素数个数*/ #include <stdio.h> #include <math.h> #include <stdlib.h> int main(){ int n,m,i,s=0; for(n=101;n<=200;n=n+1){ m=sqrt(n); for(i=2;i<=m;i++) if(n%i==0) break; if(i>m){ printf("%5d",n); s=s+1; if(s%5==0) printf("\n"); } } printf("\n"); printf("101~200共有%d个素数",s); return 0; }

2.
#include <stdio.h> int main(){ int line, col; for(line=1;line<=5;line++){ for(col=5-line;col>0;col--){ printf(" "); } for(col=1;col<=2*line-1;col++){ printf("#"); } printf("\n"); } return 0; }

总结与体会:
循环语句还是有点困难,嵌套多层时会导致自己的逻辑混乱,有的题目不清楚算法,或是知道算法但是无法用计算机语言表达出来,例如打印星号的例题,不清楚嵌套的内层循环for(col=1;col<=2*line-1;col++)的运行逻辑。还是要多多训练,书上的例题只停留在看得懂,自己不会写的层面,第三章的C语言也太难了吧,花了很多时间在这上面了但是效果不太好。
https://www.cnblogs.com/lvzixuan/p/10703453.html
https://www.cnblogs.com/xh66/p/10703809.html
https://www.cnblogs.com/hx-123/p/10692270.html
浙公网安备 33010602011771号