---恢复内容开始---编程
实验结论:spa
demo5-1结果:code
demo5-2结果:blog
对比发现continue和break的区别:continue是结束此次的循环,由于i只能取1-5之间的整数,因此i=1 2 4 5 的时候都不是3的倍数,不用结束本次循环。break是结束整个循环i依旧能够去1-5之间的数,但3是3的倍数,因此到3 的时候结束了整个循环,屏幕上再也不出现4和5io
对比demo6-1和6-2结果发现 break语句包含在嵌套里,它只跳出最里面的循环,不影响大循环,只是内部循环break以后的都没有了。continue也不影响大循环,只跳过当前的小循环,后面的小循环继续。class
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; }
结果截图:im
part3:demo
#include<stdio.h> int main(){ int k,n,i; k=100; i=0; while(k<=200){ k++; for(n=2;n<=k;n++){ if(k%n==0&&n<k){ break; } else if(k%n!=0){ continue; } else{ printf("%4d",k); i++; if(i%5==0){ printf("\n"); } } } } printf("\n101~200之间共有%d个素数.",i); return 0; }
结果如图:
*编程练习
#include<stdio.h> const int H=5; const int L=9; int main(){ int line,col,a,b; for(line=1;line<=5;++line){ a=6-line; b=4+line; for(col=1;col<=9;++col){ if(a>col||b<col){ printf(" "); continue; } printf("*"); } printf("\n"); } return 0; }
结果截图:
我出现的错误和踩坑:
1.在作判断三角形的时候,我把等腰的条件放在前面了,把等边条件放在后面并且还加上了else if。如今我明白个人错误有两点,一是等边的条件比等腰的更加苛刻,也就是说,符合等边的必定符合等腰的条件,而if语句是若是if后面的条件成立了就显示这个if下面的,后面的就不看了,等边三角形已经符合等腰的条件了,因此就出现了我明明打的是等腰三角形,屏幕上会打出“这是等腰三角形”的状况。后来我把等边的条件放在前面了但是等腰等边条件我用的都是if,此时我输入等腰三角形的数值后,屏幕上出现了“这是等腰三角形”“这是等边三角形”,我才意识到我没有加else if。先判断是否是三角形(if) 若是是,判断是否是等边(if),若是不知足等边这么苦苛刻的条件,退而求其次,(else if)看看是否知足等腰的条件,若是等腰也不符合则(else)是通常三角形;若是不知足三角形条件(else),则不是三角形。
2.不知道如何跳出while循环,前面涉及到的while都是不须要终止的,我就照猫画虎把这个的也写上了,一开始写的是n<=5,结果出来了6行文字。我以为我这样想逻辑是对的呀,后来改为了<5就是5行了。个人理解是,n++在最后给n的值加上一。算完第一次,第二次开始算n的时候,n=2,以此类推。到算完第五行(正好符合题意)的时候,再算第六行的n,n=5,不符合题意。我仍是不太明白!!
3.星号编程题的逻辑真的好难啊,用脑子想我都懂,就是不知道怎么用电脑表示出来,一开始我弄的符号只有前半段,吓死我了,后来发现我把列数打错了,仍是有点迷糊。
---恢复内容结束---
---恢复内容结束---