实验项目:循环嵌套(写实验报笠) 实验内容:程序(→)功能:编程实现正三角型星号的 打印 参考程序: ma in dint i,j,k 设n=6,图形如下 scanf(%d",&n) for(i=1; i<=n;i++) I for j=1; j=n-i; j++) printf (") for(k=1;k<=2*-1;k++) printf(*) 冰*水水冰冰水水冰冰 printf(\n")
实验项目: 循环嵌套 (写实验报告) 实验内容:程序(一) 功能:编程实现正三角型星号的 打印 参考程序: main() {int i,j,k,n; 设n=6,图形如下 scanf("%d",&n); * for(i=1;i<=n;i++) *** {for(j=1;j<=n-i;j++) ***** printf(" "); ******* for(k=1;k<=2*i-1;k++) ********* printf("*"); *********** printf("\n"); } }
程序(二)功能:编程实现打印3~100之间的所有素数 参考程序 #include maino fint n, m,t, k=0 for(n=3;n<=100;n=n+2) (k-sqrt() t=1 for(m=2 m<= m++)/*k*/ tt=0; break; i /*n%m==0*/ if(t)printf("%od" n): k++, )g if(k10==0)printf("n")
程序(二) 功能:编程实现打印3~100之间的所有素数。 参考程序: #include main() {int n,m,t,k=0; for( n=3 ; n<=100; n=n+2) {k=sqrt(_____); /* n */ t=1; for(m=2; m<=_______; m++) /* k */ if(________) {t=0; break;} /* n%m==0 */ if(t) {printf("%d",n);k++;} if(k%10= =0) printf("\n"); } }
程序(三)功能:编程实现一个小球从100高度自由落下,每次 落地后反弹回原来的高度的一半,再落下。求它在第10次落地 时,共经过多少米?第10次反弹多高? 提示:画图分析。设变量p表示每次落地后经过的米数,设变量 h表示每次落地前小球离地面的高度,变量s表示前次小球经过 的米数之和。循环体可以表示为:(初值h=100,s-0) p=h+h/2 sstp h=h/2 100 50 25 注意:最后一次不包括反弹米数,所以结果中的s 应该减去h米,即应该经过s-h米
程序(三) 功能:编程实现一个小球从100高度自由落下,每次 落地后反弹回原来的高度的一半,再落下。求它在第10次落地 时,共经过多少米?第10次反弹多高? 提示:画图分析。设变量p表示每次落地后经过的米数,设变量 h表示每次落地前小球离地面的高度,变量s表示前i次小球经过 的米数之和。循环体可以表示为: (初值 h=100, s=0) p=h+h/2; s=s+p; h=h/2; 注意:最后一次不包括反弹米数,所以结果中的s 应该减去h米,即应该经过s-h米。 100 50 25 1 2 3 4 ………
程序: maino i float s=0, p, h=100; it n for(n=1;n<=10,n++) {p=h+h/2; S=S+ h=h/2 printf(“第十次落地时共经过的%m:,s-h printf((“第十次反弹%fm”,h);
程序: main() {float s=0 , p , h=100; int n; for(n=1;n<=10;n++) {p=h+h/2; s=s+p; h=h/2; } printf(“ 第十次落地时共经过的%f m.”,s-h); printf(“ 第十次反弹%f m.”, h); }
问题 1.去掉程序一内层的花括号{}程序会输出什么图形?为什么? 去掉程序一中 printf("\n");语句,程序会输出什么结果?为什么 3.如果想把程序一中的三角形倒过来,如何修改程序? 4.补充程序二。 5.程序二中变量t的作用是什么?如果不用变量t应如何修改程序? 6.程序二中语句if(k%10=0) printf("\n");起什么作用? 7.编程实现程序三的功能
问题 1.去掉程序一内层的花括号{ }程序会输出什么图形?为什么? 2.去掉程序一中printf("\n");语句,程序会输出什么结果?为什么 3.如果想把程序一中的三角形倒过来,如何修改程序? 4.补充程序二。 5.程序二中变量t的作用是什么?如果不用变量t应如何修改程序? 6.程序二中语句if(k%10==0) printf("\n"); 起什么作用? 7.编程实现程序三的功能
120页6.1程序:(偎设m>n) maino 例如求m与n的最大公约数 Rint m,n,r m= n+rI scanf(%d, %d,, &m, &n): n=q2r1+ r2 r=m%n 1-q: 3l2+r r while(r=0) (m=n; n=r; n -2 gn in-1 (rn=0) r=mo n, 比如28与6 printf(“%din“,r) 28-4×6+4 6=1×4+2 4=2×2+0
120 页 6.1 程序:(假设m>n) main() 例如求 m 与 n 的最大公约数 {int m , n , r ; m=q1 n + r1 scanf(“%d,%d”,&m,&n); n=q2 r 1+ r2 r =m% n ; r 1=q3 r2 +r3 while(r!=0) ……… {m = n ; n= r ; rn-2=qn rn-1 +rn (rn=0) r = m% n ; } 比如28 与 6 printf(“ %d \n “, r); 28=4×6 + 4 } 6=1×4 + 2 4=2×2 + 0