第4章 循环结构程序设计.pptx
第4章循环结构程序设计;4.1引例; printf(InputMathscore,Englishscore,Computerscore:\n);
scanf(%d%d%d,MaScore,EnScore,CScore);
sum=MaScore+EnScore+CScore;
aver=sum/3.0;
printf(Thesumis%d\nTheaverageis%.1f\n,sum,aver);;
i=1;
while(i=30)
{
i++;
};#includestdio.h
intmain(void)
{
inti,MaScore,EnScore,CScore,sum;
floataver;
i=1; //循环变量i赋初值为1
while(i=30) //当i=30时执行花括号内的语句
{
printf(InputMathscore,Englishscore,Computerscore:\n);
scanf(%d%d%d,MaScore,EnScore,CScore);
sum=MaScore+EnScore+CScore;
aver=sum/3.0;
printf(Thesumis%d\nTheaverageis%.1f\n,sum,aver);
i++; //循环变量i的值加1
}
return0;
};4.1引例;4.2循环控制结构与循环语句
;4.2循环控制结构与循环语句
;4.2循环控制结构与循环语句
;
例4.1用while语句实现了循环输出,实现的语句为:
i=1;
while(i=30)
{
printf(InputMathscore,Englishscore,Computerscore:\n);scanf(%d%d%d,MaScore,EnScore,CScore)sum=MaScore+EnScore+CScore;
aver=sum/3.0;
printf(Thesumis%d\nTheaverageis%.1f\n,sum,aver);
i++;
};4.2循环控制结构与循环语句
;4.2循环控制结构与循环语句
;用do-while语句实现例4.1中的循环输出,实现的语句为:
i=1;
do
{
printf(InputMathscore,Englishscore,Computerscore:\n);scanf(%d%d%d,MaScore,EnScore,CScore)sum=MaScore+EnScore+CScore;
aver=sum/3.0;
printf(Thesumis%d\nTheaverageis%.1f\n,sum,aver);
i++;
}while(i=30);;while和do---while循环的比较;while和do---while循环的比较;while和do---while循环的比较;习题3-4;习题3-5;4.2循环控制结构与循环语句;4.2循环控制结构与循环语句;4.2循环控制结构与循环语句;4.2循环控制结构与循环语句;4.2循环控制结构与循环语句;4.2循环控制结构与循环语句;注意;注意;注意;注意;逗号表达式;注意;4.3几种循环的比较;4.3几种循环的比较;4.3几种循环的比较;思考:
1、求1+3+5+…+99
2、求2+4+6+…+100
3、求50+51+…+100
4、求
;4.3几种循环的比较;【例4.3】编??求累乘之积,从键盘输入n,计算n!,并输出。
【问题分析】这是一个累乘问题,需要先后将n个数相乘,如果用ti表示前i项之积,那么有如下公式:
t0=1
t1=t0*1
t2=t1*2 =ti=ti-1*i= t=t*i
…
tn=tn-1*n; inti,n;
longintt=1;
printf(“请输入n的值:\n”);
scanf(“%d”,n);
for(i=1;i=n;i++)
{
t=t*i;
};【例4.4】编程,用“欧几里德”算法求两个自然数m和n的最大公约数。
【问题分析】“欧几里德”算法又称“辗转相除法”,是求两个自然数的最大公约数的经典算法。它先将m除以n求余数r,并判断余数r是否为0,如果余数r为0,则n就是最大公约数,否则,就辗转赋值(m=n,n=