11-while,do...while语句及练习解析

  • 格式:ppt
  • 大小:161.00 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wenku.baidu.com
课后练习5.2
#include "stdio.h" main( ) { char ch; do { ch=getchar(); putchar(ch); } while(ch!='\n'); }
练习
1、从键盘输入若干个数,当输入为0时结束, 计算这些数的和及平均值并输出。
#include "stdio.h" main( ) { float j=0,sum=0,avg=0; int k=0; do { k = k + 1; printf("请输入第%d个数:",k); scanf("%f",&j); sum = sum + j; }while(j!=0); if(k>1) avg = sum / (k - 1); printf("和为:%f,平均数为:%f.\n",sum,avg); }
课后练习5.7
5.3 do-while语句


一般形式 do 循环体语句 while(表达式); 功能:先执行循环体,然后计算“表达 式”,判别“表达式”的值是否为真。 如果为真则再次进入循环体执行。如此 往复,直至“表达式”的值为假时,循 环才结束。

do while循环的使用
循环变量初始化; do { 循环体语句; 修改循环变量的值; }while (循环条件);
}

例5.2 将例5.1用while循环来实现。 main() {int sum,i; sum=0; i=1; while(i<=100) for(i=1;i<=100;i++) { sum=sum+i; i++; } printf("sum=%d",sum); }

说明
( 1 ) while 是关键字。 while 后面的表达式相 当于for语句中的表达式2。 (2) 对于for语句中的表达式1,在while语句 中,需要在进入循环之前确定循环控制变量的 初始值,如上面语句i=1。 (3) 对于for语句中的表达式 3,在while语句 中,需要在循环体中来体现,如上面语句 i++ 。 (4) 循环体中包含多条语句,需要用花括号 写成复合语句。
课后练习5.3
#include "stdio.h" main( ) { int n,d; printf("请输入一个整数:"); scanf("%d",&n); do{ d=n%10; printf("%d",d); n=n/10; }while(n!=0); printf("\n"); }
例:如果我国工农业产值每年以 9% 的增长 率增长,问几年后我国的工农业产值可以 翻一番。 【问题思路】先设原来产值(基数)为100, 然后每年底计算一次增长后的产值。如果 未达到200,就再计算下一年的产值,直 到某一年的产值达到或超过200为止。设 变量n用来累计经历的年数
参考程序如下: #include "stdio.h" main( ) { float p,r; int n; n=0;p=100;r=0.09; while(p<200) { p=p*(1+r); n=n+1; } printf("%d years,p=%10.4f\n",n,p); }
例5.5 将例5.1用do-while循环来实现。 main() { int sum,i; sum=0;i=1; do { sum=sum+i; i++; } while(i<=100); printf("sum=%d",sum); }

说明 (1)do 是关键字。 do-while 语句是先执行循 环体“语句”,后判断循环终止条件, 因此循环体至少被执行一次,这一点与 while和for循环存在很大的差别。 (2)do-while循环中,do … while(表达式) 后 面有分号,而while循环中,while(表达 式)后面没有分号。 (3)在书写时,循环体包含多条语句要用花 括号括起来。
5.2 while语句


一般形式 while(表达式) 循环体语句; 功能:计算并判断表达式的值, • 若值为真,则执行循环体语句; • 若值为假则结束循环,退出 while 语句, 转而执行while循环后面的语句。

while循环的使用
循环变量初始化;/*for中表达式1*/ While (由循环变量构成的条件) /* 表达式 2*/ { 循环体语句; 修改循环变量的值; /*for中表达式3*/
课后练习5.1(2)
#include "stdio.h" #include "math.h" main( ) { int a; double x0,x1; printf("请输入正整数a:"); scanf("%d",&a); x0=a/2.0; x1=(x0+a/x0)/2.0; while(fabs(x1-x0)>1e-5) { x0=x1; x1=(x0+a/x0)/2.0; } printf("%d的平方根为:%f.\n",a,x1); }