实验三
Part1: 验证性内容
*分别运行程序demo5_1.cpp和demo5_2.cpp,结合运行结果,对比和理解控制语句continue和break的功 能。 源码文件demo5_1.cpp及运行结果:
break语句
continue语句
1.break语句可以用在switch语句中,可以用在循环,可以跳出本层循环;break之后的语句不会执行
2.continue语句不能用于switch语句中,只能用在循环语句中,退出本次循环,直接进入下一次循环,continue之后的语句不会执行。
*对比和理解在嵌套的循环中控制语句 continue和break的
continue
break
由运行结果可知,两者只分别结束和跳过了内层循环,都是三行,未曾影响外层循环。
内层循环中如果出现break和continue都不影响外层循环。
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<=4) { 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; }
*尝试用do while改写
#include <stdio.h> int main() { int number, max, min, n; n=1; printf("输入第%d个数: ", n); scanf("%d", &number); max = number; min = number; do{ printf("输入第%d个数: ", n); scanf("%d", &number); n++; if(number>max) max = number; else if(number<min) min = number; } while(n<=5); printf("最大数为: %d\n", max); printf("最小数为: %d\n", min); return 0; }
while()加分号,for注意{}
Part3:编程练习
1.编程输出101~200之间所有素数,并输出这一区间内素数个数。
#include<stdio.h> #include<math.h> int main(){ int a,c,d; for(a=100;a<=200;a++) { for(c=2;c<=sqrt(a);c++) { if(a%c==0) {break;} } if(c>sqrt(a)) printf("%4d",a); } return 0; }
一开始我用b=sqrt(a),始终输出的为100-200所有数,开完根号的不一定是整数,而int b为整数
2.编程打印输出图案
#include<stdio.h> int main() { int i,j,n,q; for(i=1;i<=5;i++) { for(j=1;j<=5-i;j++) { printf(" "); } for(n=1;n<=2*i-1;n++) { printf("*"); } for(q=1;q<=i;q++) { printf(" "); } printf("\n"); } return 0; }
一开始想了很久怎么输出空格,后来发现直接printf(" ")就可以了
总结
对循环嵌套语句的使用和规范有待加强,要培养自己独立思考算法的能力
实验二评论地址:
https://www.cnblogs.com/NyaNyaGoose/p/10640071.html
https://www.cnblogs.com/neorenaissance/p/10646115.html
https://www.cnblogs.com/astraeus/p/10612403.html
---恢复内容结束---