实验三
Part1
demo1.
代换代码可行
运行结果如下
放入while循环中
demo2.
代码和运行截图如下
通过while循环,可以输入多次数据进行判断,十分方便。
demo5-1&5-2
continue和break
运行结果对比如下
break功能是跳出此层循环,进行下一层的循环,在此程序中即当为3的倍数时跳出,到换行的操作,所以每层只出现1,2。
continue功能是结束本次循环,重新开始新一轮循环。即当为3的倍数时重新开始继续输入各列信息,因此有数字4,5出现。
demo6-1&demo6-2
break影响该外层循环,打断了3以后的循环。
continue不影响外层循环。
Part2
补全
#include<stdio.h> int main(){ int max,min,number,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",min); printf("最大值为%d\n",max); return 0; }
运行截图
用for来实现
#include<stdio.h> int main(){ int max,min,number,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",min); printf("最大值为%d\n",max); return 0; }
Part3
判断素数
#include<stdio.h> #include<math.h> #include<stdlib.h> int main(){ int i,m,n,k=0,number=0; for(n=101;n<=200;n++) {for(i=2;i<n;i++) if(n%i==0)break; m=sqrt(n); if(i>m) {printf("%6d",n); k++; number++; if(number%5==0) printf("\n"); } } printf("101~200之间素数有:%d\n",k); return 0; }
编程打印
#include<stdio.h> int main(){ int i,j,k,n; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) printf(" "); for(k=0;k<2*i-1;k++) printf("*"); printf("\n"); } return 0; }
总结
这次编程练习中
一开始写判断素数的时候,最后输出结果和老师给出截图并不相同,仔细想想应该是对每行的输入个数有要求,所以引进了一个计算每行的数字的变量number,截图中每行为5个,所以当number为5的倍数,即对5取余为0换行即可得截图中格式。
对于第二道题,我一开始把for中的条件和判断搞混了,就造成无限循环*。对于这道题,主要还是要找出关于行,星号,空格的关系。