实验五 循环控制

u    实验目的

1、掌握“当型”和“直到型”循环结构

2、掌握while语句和 do-while 语句并区分二者的异同

3、掌握 for 语句

4、掌握循环结构程序设计

u    预习内容

见教材第六章

u    实验重点

熟悉掌握用while语句,do-while语句和for语句实现循环的方法。

u    实验难点

1、熟悉掌握用while语句,do-while语句和for语句实现循环的方法。

2、进一步学习调试程序。

u    实验内容

编程序并上机运行:

1、输入两个整数mn,求它们的最大公约数和最小公倍数。

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);

     }

}

 

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?