实验3
Part 1验证性内容
#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; }

#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,其功能区别:
continue:在循环结构中如果遇到continue,则会提前结束本次循环,然后进行下一轮循环。
break:在循环结构中遇到break,则会结束本层循环,终止循环,不会进入下一轮循环。
#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; }

思考:结合程序demo6_1.cpp和demo6_2.cpp运行结果对比,回答以下两个问题:
在两层嵌套循环中,内层循环中如果出现continue,是否影响外层循环?
在两层嵌套循环中,内层循环中如果出现break,是否影响外层循环?
continue和break若出现在内层循环,都不会影响外层循环,只会影响其所在的循环层。
Part2: 补足程序
#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; }

拓展思考:
对比《C语言程序设计教程学习指导》p124代码,体会和理解合理运用循环的优点:
减少了程序的语句,编程的目的更加直接明了
使用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=1;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:编程练习
#include <stdio.h> #include<math.h> int main() { int n; int i; int j=0; for(n=101;n<=200;n++){ int isPrime=1; for(i=2;i<=sqrt(n);i++){ if (n%i==0){ isPrime=0; break; } } if(isPrime){ printf("%d\n",n); j++; } } printf("101~200之间共有%d\n个素数",j); return 0; }

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

互评地址:
https://www.cnblogs.com/mgl1999/p/10713091.html
https://www.cnblogs.com/celan/p/10703675.html

浙公网安备 33010602011771号