《C语言程序设计(》课件_第3章结构化程序设计的三种基本结构.ppt
【例3.36】利用格里高利公式求π:=1-+-+…直到最后一项的绝对值小于等于10-6为止。#includemath.h#includestdio.hvoidmain(){intsign=1;floatn,pi,t;t=1.0;n=1.0;pi=0.0;do{pi=pi+t;n=n+2;sign=-sign;/*符号转换*/t=sign/n;}while(fabs(t)=1e-6);pi=pi*4;printf(\npi=%10.6f,pi);}
②用switch结构实现:
#includestdio.h
voidmain()
{intselect;
floatleng,r=2.54;
printf(\nPleasechoose(1:inchtocm,2:cmtoinch):);
scanf(%d,select);
printf(Entertheleng:);
scanf(%f,leng);
switch(select)
{case1:printf(\n%6.2finch=%6.2fcm,leng,leng*r);break;
case2:printf(\n%6.2fcm=%6.2finch,leng,leng/r);break;
default:printf(Entererror!)\n);
}
}3.3循环结构程序设计
在程序设计中,经常会遇到需要重复处理的内容,这样的功能由循环结构来实现。
循环体一组被重复执行的语句称为循环体。
循环条件每执行一次循环体后,都必须做出是继续 还是停止循环的决定,这个决定所依据的 条件称为循环条件。例,从键盘上输入一个整数n,求n!。
问题分析:
n!=1*2*3*……*(n-1)*n
为了便于编程实现,用变量i表示当前乘数,初始值为1;s表示累乘积,初始值为1。每次让s乘以i再存放到s中去,然后i的值增1,再继续进行下去,直至i的值增加到n+1停止。算法如图3.9所示。i=1s=1i=n?i++s=s*i输出n!YN开始结束输入n一般来讲,循环结构程序设计要考虑两个方面的问题:
①循环条件:循环条件是循环结构设计的关键,它决定着循环体重复执行的次数。循环条件常常由关系表达式或逻辑表达式来表示。
②循环体:循环体即是需要重复执行的工作。它可以是一组顺序结构的语句,也可以是一组具有选择结构的语句,甚至还可以又是一组具有循环结构的语句。
循环结构程序设计就是要正确描述循环条件,并分析出问题的规律性,利用C语言提供的循环控制语句来实现具体的功能。3.3.1while循环
while语句用于构成“当型”循环结构。
1.格式:
while(条件表达式)
循环体语句;
2.功能
首先计算条件表达式(循环条件)的值,若结果为“真”(非零),则执行循环体语句;然后回头再次计算表达式的值,重复上述过程,直到表达式的值为“假”(零)时结束循环,流程控制转到循环结构的下一语句。【例3.23】利用while语句编程实现n!。
#includestdio.h
voidmain()
{intn,i,s;
printf(\nEntern:);
scanf(%d,n);
i=1;
s=1; /*给变量i、s赋初值*/
while(i=n)/*循环继续的条件*/
{s=s*i; /*进行累乘求积*/
i++;/*乘数增值*/
}
printf(\n%d!=%d,n,s);/*输出计算的结果*/
}3.使用while循环结构应注意以下几点:
①while循环结构的特点是“先判断,后执行”。如果条件表达式的值一开始就为“假”,则循环体一次也不执行。
②循环体中,如果包含一个以上的语句,则应用花括号括起来,以复合语句的形式出现。
③循环体内一定要有改变循环继续条件的语句,使得循环趋向于结束,否则循环将无休止地进行下去,即形成“死循环”。如例3.23中的语