c语言使循环能进行20次,c语言循环结构.doc

本文探讨了C语言中的循环结构,涉及如何通过设定不同条件使程序不进入、仅循环一次或多次,以及可能导致死循环的情况。实验还讨论了变量初始化、循环次数计数及循环结构的转换。另外,涉及了两个实际编程例子,如判断阶乘符号和打印指定范围的奇数。
摘要由CSDN通过智能技术生成

c语言循环结构

实验八 循环结构

1.下面是一个计算e的近似值(使误差小于给定的δ)的程序。

main( )

{

double e=1.0,x=1.0,y,detax;

int i=1;

printf("\n please input enter a data:");

scanf("%lf",&detax);

y=1/x;

while(y>=detax)

{

x=x*I; //未定义变量I

y=1/x;

e=e+y;

++i;

}

printf("%12.10lf",e);

}

detax各是什么值时,能分别使程序按下面的要求运行:

不进入循环;

只循环一次;

只循环两次;

进入死循环(程序将永远循环下去)。

为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?

(3)原程序中while语句中的y>=detax,分别换成y>detax,y=detax,y

(4)把原程序中while 语句之前的y=1/x 语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器内的程序实际上是怎么写的,输入什么样的detax 就能测试出少了上述这条语句。

(5)若把原程序中的++i 换成i++,观察程序的运行发生了什么变化?

(6)把原程序中的while 结构改写成do—while 结构,再分别按上述的(2)、(3 )两步进行实验。

3(1)#include

main()

{ int m,n,sign,t;

scanf("%d%d",&m,&n);

while(m*n)

{

if (m>=0&&n>=0||m<=0&&n<=0) sign=0;

else sign=1;

m=m>0?m:-m; n=n>0?n:-n;

t=0;

while(n--) t+=m;

printf("\nThe result is:");

if (sign) printf("-");

printf("%d\n",t);

scanf("%d%d",&m,&n);

}

}

(2)main()

{int k=1;

while(k<=20)

if(++k%4!=2) continue;

else printf(‘%d”,k);

printf(“\n”);

}

(3)main( )

{ int n=4;

while(n- -)printf("%d ",- -n);

}

1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1

1 2 3 4 3 2 1

1 2 3 2 1

1 2 1

1

7.(选做题)已知2001年1月1日是星期一,编写程序,在屏幕上输出2000年的年历。关于闰年的计算方法:如果某年的年号能被400除尽, 或能被4除尽但不能被100除尽,则这一年就是闰年。

8.运行程序,分析并观察运行结果

main()

{

int i;

clrscr();

for ( i=1;i<=20;i++)

if(i%4==0)printf(“%d\n”, i);

}

9.验证程序输出结果

(1)main( )

{ int i;

for(i=1;i<6;i++)

{ if(i%2){printf("#");continue;}

printf("*");

}

intf("\n");

}

(2)main()

{ int x,i;

for(i=1;i<=100;i++)

{ x=i;

if(++x%2= =0) /*当x==28的时候,这句等价于if(29%2==0)吗?*/

if(++x%3= =0) /*当x==70的时候,这句等价于if(72%2==0)吗?*/

if(++x%7= =0)

printf("%d ",x);

}

}

(3)main()

{int a=1,b;

for(b=1;b<=10;b++)

{if(a>=8)break;

f(a%2= =1){a+=5;continue;}

a-=3;

}

printf("%d\n",b);

10.下列程序计算SUM的值。调试该程序,使之能正确地计算SUM。写出调试过程。计算公式如下:

SUM= 1 +2 - 3+4 - 5+ …… -n

main(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值