实验五 循环控制 |
u 实验目的1、掌握“当型”和“直到型”循环结构 2、掌握while语句和 do-while 语句并区分二者的异同 3、掌握 for 语句 4、掌握循环结构程序设计 u 预习内容 见教材第六章 u 实验重点 熟悉掌握用while语句,do-while语句和for语句实现循环的方法。 u 实验难点 1、熟悉掌握用while语句,do-while语句和for语句实现循环的方法。 2、进一步学习调试程序。 u 实验内容 编程序并上机运行: 1、输入两个整数m和n,求它们的最大公约数和最小公倍数。 2、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 3、用牛顿迭代法求方程的根。 4、解决猴子吃桃问题。 u 参考例题 【例】用∏/4≈1-1/3+1/5-1/7+………公式求∏的近似值,直到最后一项的绝对值小于0.000001为止。 #include <math.h> main() { int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while((fabs(t))>1e-6) { pi=pi+t; n=n+2; s=-s; t=s/n; } pi=pi*4; printf(“pi=%10.6f\n”,pi); } 【例】求Fibonacci数列40个数。 main() { long int f1,f2; int i; f1=1;f2=1; for(i=1;i<=20;i++) { printf(“%12ld %12ld”,f1,f2); if(i%2==0) printf(“\n”); f1=f1+f2; f2=f1+f2; } } 【例】判断m是否为素数。 #include <math.h> main() { int m,i,k; scanf(“%d”,&m); k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) printf(“%d is a prime number\n”,m); else printf(“%d is not a prime number\n”,m); } 【例】 求100~200间的全部素数。 #include <math.h> main() { int m,i,k,n=0; for(m=101;m<=200;m+=2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) {printf(“%d ”,m); n=n+1;} if(n%10==0) printf(“\n”); } printf(“\n”); } 【例】 译密码。见教材P-119页 #include <stdio.h> main() { char c; while((c=getchar())!=’\n’) { if((c>=’a’&&c<=’z’)||(c>=’A’&&c<=’Z’)){ c=c+4; if(c>’Z’&&c<=’Z’+4||c>’z’) c=c-26; } printf(“%c”,c); } }
|
|