实验3(2019.4.9)
【实验结论】
一、Part1:验证性内容。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1、在循环中使用控制语句continue和break的功能区别。
(1)探索过程。
有下列两段代码,为方便对比,分别标号①②。
从运行结果可以看出:①中的continue作用是当i能被3整除时,终止当次循环并从头开始进入下一次循环;②中break的作用是当i能被3整除时,终止当前循环。
那么,continue和break的作用区别便显而易见了。
(2)总结。
continue语句:结束本次循环,开始下一次循环。
break语句:结束本层循环。
2、结合程序demo6_1.cpp和demo6_2.cpp运行结果对比,回答:
(1)在两层嵌套循环中,内层循环中如果出现continue,是否影响外层循环?
(2)在两层嵌套循环中,内层循环中如果出现break,是否影响外层循环?
继续对比两段程序,为陈述方便,分别标号③和④。
经对比结果,答:(1)不影响外层循环。
(2)不影响外层循环。break语句仅用于结束内层循环。
二、Part2:补足程序,使得程序运行。
·找出5个数中最大和最小的数。
(1)补足程序,代码如下:
#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; }
(2)若使用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;){ printf("输入第%d个数:",n); scanf("%d",&number); if(number>=max) max=number; else if (number<=min) min=number ; n++ ; } printf("最大数为:%d\n",max); printf("最小数为:%d\n",min); return 0; }
(1)(2)运行结果如出一辙。
三、Part3:编程练习。
1、找出100到200之间的素数。
思路:先把101—200这些数循环出来。
再一个个分别除以2—某个数-1,若不能整除则为素数。
代码如下:
#include<stdio.h> int main(){ int i,m,n; i=0; for (n=101;n<=200;n++){ for(m=2;m<n;m++){ if(n%m==0) break; } if(m>=n) { i++; printf("%d\t",n); if(i%5==0){ printf("\n"); } } } printf("\n共输出%d个素数\n",i); return 0; }
ps:搞清这个内外层循环以及表达式成立的条件着实花了很长时间,但写完也就慢慢摸清楚了。
运行结果如下:
2、输出三角形*阵。
先分析输出的图形,设行数为n
第一行有4个空格,1个*;
第二行有3个空格,3个*;
第三行有2个空格,5个*;
第四行有1个空格,7个*;
第五行有0个空格,9个*;
做道小学找规律题(手动滑稽)得:
第n行有(5-n)个空格,(2n-1)个*。
于是,可以想到,让输出空格循环(5-n)次,然后再让*输出循环(2n-1)次,然后每行换行,就可以输出此图形。
让空格循环(5-n)次,有:
for(a=1;a<=5-n;a++) { printf(" "); }
再让*循环(2n-1)次,有:
for(b=1;b<=2*n-1;b++){ printf("*"); }
组合加工一下,得源代码:
#include<stdio.h> int main(){ int n,a,b; for(n=1;n<=5;n++){ for(a=1;a<=5-n;a++) { printf(" "); } for(b=1;b<=2*n-1;b++){ printf("*"); } printf("\n"); } return 0; }
运行结果:
为了方便观察,习惯性把for后面的{}标出来,便于弄清循环怎么循环的。要不然就是一团糟。
【实验反思】
遇到编程题,首先要从数学层面上找清楚规律,再依据这些来编程,即可。