实验三
Part 1
continue只控制本次循环结束
#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; }
break出现后,此次循环及其以后的循环均不再执行
#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,均不影响外层循环
#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; }
#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; }
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<=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; }
#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<=4;n++) { printf("输入第%d个数: ",n); scanf("%d",&number); if(number>=max) max = number; else if(number<=min) min = number; } printf("最大数是:%d,最小数是:%d",max,min); return 0; }
Part 3
#include <stdio.h> #include <math.h> #include <stdlib.h> int main() { int i,m,n; for(n=101;n<=200;n++) { m=sqrt(n); for(i=2;i<=m;i++) if(n%i==0)break; if(i>m) printf("%d\n",n); } return 0; }
#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; }
实验总结:
关于循环的嵌套使用我经常理不清循环结构,以后要加强练习。
关于循环的条件,一定要注意临界的取值,否则会导致循环次数的错误。