目录 5.1循环结构程序设计的概述 5.2 用while语句实现循环结构程序设计 5.3 用do-while语句实现循环结构程序设计

Slides:



Advertisements
Similar presentations
While 迴圈 - 不知重複執行次數
Advertisements

CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
10.2.switch语句.
《C语言程序设计》复习
循环模式 流程图的画法: 条件 y 循环体 伪代码: n Do while 条件 循环体 loop 每个循环模式的结构都是一个入口,一个出口.
第六章 循环控制.
项目三 学生成绩的分组汇总 项目要求 一个班中有四个小组,求本学期期中考试中每个小组数学成绩的总分及平均分。 项目分析
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
第3章 While循环程序设计.
C语言程序设计教程 (第4版) 第5章 循环结构 李丽娟 2013年2月.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
C语言程序设计 第五章 选择结构程序设计.
C#程序设计基础 $5 流程控制.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
Class 2 流程控制-選擇敘述與迴圈.
C程序设计.
第 四 章 循环结构 while语句 do {} while 语句 break和continue语句
循环结构 NEAU ACM-ICPC TEAM 主讲人:NEAU_ACM_Team.
第五章 选择结构程序设计 一、关系运算符和表达式 1、关系运算符 在程序中经常需要比较两个量的大小关系, 以决定程序下一步
第3章 C语言的基本语句 和程序结构设计.
第七章 函数 目录 有参的加法函数的开发 函数定义的一般形式 函数参数和函数的值 函数的调用
走进编程 程序的顺序结构(二).
第四章 循环程序设计 循环程序 多重循环 程序设计实例 作业 练习
Introduction to the C Programming Language
第5章 循环结构程序设计 5.1 为什么需要循环控制 5.2 用while语句实现循环 5.3 用do---while语句实现循环
第六章 循环结构程序设计 概述 while 语句 do-while 语句 for 语句 循环的嵌套 几种循环的比较
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
C语言 程序设计基础与试验 刘新国、2012年秋.
第五章 循环结构的C程序设计 5.1 while循环语句 5.2 do-while循环语句 5.3 for循环语句 5.4 多重循环
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
第二章 Java语言基础.
計數式重複敘述 for 迴圈 P
第六章 循环控制.
第五章 习题课 电子信息与计算机科学系 曾庆尚.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
第4章 PHP流程控制语句.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言概述 第一章.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
C语言程序设计.
C 语言程序设计 程序的循环结构 电大崇信县工作站 梁海亮.
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
请编写程序在屏幕上打印出一个“*”? printf(”*\n”); 请编写程序在屏幕上打印四行,每行一个“*”?
目录 4.1选择结构程序设计的概述 4.2关系运算符和表达式 4.3逻辑运算符和表达式 4.4用if语句实现选择结构程序设计
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
Chap 5 函数 5.1 计算圆柱体积 5.2 数字金字塔 5.3 复数运算.
《计算机应用基础》 第9章 程序设计基础(二).
几种基本语句 条件语句 广州市63中 岑光.
第九节 赋值运算符和赋值表达式.
第2章 数据类型、运算符与表达式 本章要点: 基本数据类型 常量和变量 算术运算符和算术表达式 关系运算符和关系表达式
习 题 课(作业).
算法初步 §1.1.2 程序框图.
College of Computer Science & Technology
1.2基本算法语句 1.2.3循环语句.
输入语句 输出语句 赋值语句 条件语句 循环语句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
程序设计基础.
本节内容 指针类型.
五 循环结构程序设计 厦大附中信息技术.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
§4.5 最大公因式的矩阵求法( Ⅱ ).
1.2.3 循环语句.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C语言基础学习 从外行到入门.
Presentation transcript:

目录 5.1循环结构程序设计的概述 5.2 用while语句实现循环结构程序设计 5.3 用do-while语句实现循环结构程序设计 5.4 用for语句实现循环结构程序设计 5.5 循环的嵌套 5.6 几种循环语句的比较 5.7 用break和continue语句提前结束循环 5.8循环结构程序设计举例 1

5.1 循环结构程序设计概述 1.实现循环的三种语句 C语言提供了多种循环语句,可以组成各种不同形式的循环结构。 5.1 循环结构程序设计概述 1.实现循环的三种语句 C语言提供了多种循环语句,可以组成各种不同形式的循环结构。 1)用for语句:属于先判断后执行的当型循环结构; 2)用while语句:属于先判断后执行的当型循环结构;可以解决任何循环结构的问题,但代码比用for语句多; 3)用do-while语句:先执行后判断的当型结构,循环体至少被执行一次,比使用while语句先判断后执行结构少判断一次,执行效率提高。 2

5.1 循环结构程序设计概述 2.循环结构程序的四个组成部分 1)循环初始化:为循环做准备; 2)循环控制部分:控制循环是否进行; 5.1 循环结构程序设计概述 2.循环结构程序的四个组成部分 1)循环初始化:为循环做准备; 2)循环控制部分:控制循环是否进行; 3)循环体:重复循环的主体; 4)循环修改部分:为下次循环做准备。 3

5.2 用while语句实现循环结构程序设计 1.While语句的格式 2.while语句的功能 while(表达式) 语句; 或写成: 其中表达式是循环条件,语句为循环体。 2.while语句的功能 计算表达式的值,当值为真(非0)时,则重复执行循 环体语句,直到表达式值为假时结束循环。当第一次 判断表达式的值就为假时,则循环体语句一次也不被 执行。 4

5.2 用while语句实现循环结构程序设计 【例5_1】用while语句求p=n! #include<stdio.h> void main() { int i=1,p=1; while(i<=5) p=p*i; i++; } printf("5!=%d\n",p); 5

5.2 用while语句实现循环结构程序设计 【例5_2】用while语句求 #include<stdio.h> void main() { int i=1,sum=0; while(i<=100) sum=sum+i; i++; } printf("%d\n",sum); 6

5.2 用while语句实现循环结构程序设计 【例5_3】统计从键盘输入一行字符的个数。 #include <stdio.h> void main() { int n=0; printf("input a string:\n"); while(getchar()!='\n') n++; printf("%d\n",n); } 7

5.2 用while语句实现循环结构程序设计 3.使用while语句注意事项 #include<stdio.h> void main() { int a=0,n; printf("\n input n:"); scanf("%d",&n); while (n--) printf("%d ",a++*2); } 8

5.2 用while语句实现循环结构程序设计 2)循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。 #include<stdio.h> void main() { int i=1,sum=0; while(i<=100 && sum <= 100) { sum = sum + i *i; i=i+1; } printf(“sum=%d\n”,sum); 9

5.2 用while语句实现循环结构程序设计 【例5_6】给一个正整数n(n≥2),用while循环结构判断它是否素数。 分析:循环进行的条件是:i≤k和flag=0。因为在i>k时,显然不必再去检查n是否能被整除,此外如果flag=1,就表示n已被某一个数整除过,肯定是非素数无疑,也不必再检查了。只有i≤k和flag=0两者同时满足才需要继续检查。循环体只有一个判断操作:判断n能否被i整除,如不能,则执行i=i+1,即i的值加1,以便为下一次判断作准备。如果在本次循环中n能被i整除,则令flag=1,表示n已被确定为非素数了,这样就不再进行下一次的循环了。如果n不能被任何一个i整除,则flag始终保持为0。因此,在结束循环后根据flag的值为0或1,分别输出n是素数或非素数的信息。 10

5.2 用while语句实现循环结构程序设计 #include<math.h> #include<stdio.h> void main() { int n,k,i,flag; printf("请输入n:"); scanf(“%d”,&n); k=sqrt(n); i=2; flag=0; while(i<=k && !flag) if(n % i==0) flag=1; else i=i+1; if(!flag) printf("%d is a prime number.\n",n); else printf("%d is not a prime number.\n",n); } 11

5.2 用while语句实现循环结构程序设计 【例5_7】给出两个正整数,求它们的最大公约数。 求最大公约数可以用辗转相除法,也称欧几里德法。 分析:以大数a作被除数,小的数b作为除数,相除后余数为r。如果r≠0,则将b=>a,r=>b,再进行一次相除,得到新的r。如果r仍不等于0,则重复上面过程,直到r=0为止。此时的b就是最大公约数。 12

5.2 用while语句实现循环结构程序设计 #include<stdio.h> void main() { int a,b,t,r; printf("请输入a:"); scanf("%d",&a); printf("请输入b:"); scanf("%d",&b); if(a<b) { t=a;a=b;b=t;} //保证a大于b r=a % b; while(r) { a=b; b=r; r=a % b; } printf("h.c.f.=%d\n",b); } 13

5.2 用while语句实现循环结构程序设计 【例5_8】如果我国工农业生产每年以12%速度增长,问多少年后产值翻一番。假设我国今年的产值为100。 分析:先算出第一年后的产值,看它是否达到200,如果未达到,再算第二年后的产值,看它是否达到200;如果仍未达到,再计算第三年后的产值……一直到某年后的产值达到或超过200为止。 #include<stdio.h> void main() { float p=100,r=.12; int n=0; while(p<200) { p=p*(1+r); n=n +1; } printf("%dyears,p=%f ",n,p); } 14

5.3 用do-while语句实现循环结构程序设计 语句; while(表达式); 或写成: do 语句; 2.do-while语句功能 先执行循环体语句,然后再判断表达式是否为真,如果 为真,则继续循环;如果为假,则终止循环。因此, do-while循环至少要执行一次循环语句。 15

5.3 用do-while语句实现循环结构程序设计 【例5_9】求 ,直到前后两项之差小于10-3为止(后一项不累加)。 分析:n是某一项的分母,例如第3项的n是3。term在开始时是多项式第1项的值,先把它加到s中。然后n 的值加1,term的值变成1/2,此时它代表第二项。如果此两项之差大于或等于10-3,则再执行循环体,把term 值赋给term1.然后再累加到s中去。可以看出:程序中term1代表当前要累加的项,term代表下一项,如果这两项之差未超过10-3,就将下一项加到s 中。 16

5.3 用do-while语句实现循环结构程序设计 #include <stdio.h> void main() { float s=0,term,term1; int n=1; term = 1 / n; do { term1 = term; s = s + term1; n = n + 1; }while(term1-term >= 10^-3); printf(“%f”,s); } 17

5.3 用do-while语句实现循环结构程序设计 3.while和do-while循环比较 while和do- while结构都为当型循环结构,都是当条件成立时执行循环体;不同的是,前者为先判断,循环体执行次数大于或等于0;后者为后判断,循环体执行次数大于或等于1。 【例5_10】while和do-while循环比较。 1)while循环 #include<stdio.h> void main() { int sum=0,i; printf("输入i:"); scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d\n",sum); } 18

5.3 用do-while语句实现循环结构程序设计 #include<stdio.h> void main() { int sum=0,i; printf("输入i:"); scanf("%d",&i); do sum=sum+i; i++; }while(i<=10); printf("sum=%d\n",sum); } 19

5.3 用do-while语句实现循环结构程序设计 【例5_11】将1~100间各奇数(1、3、5、7…)顺序累加,直到其和等于或大于100为止。要求输出已实行累加的奇数,共加了多少个数,以及累加和。 #include<stdio.h> void main() { int i=3,n=1,sum=1; printf(“%d”,1); do { sum=sum+i; printf("+%d",i); i=i+2; n=n+1; }while(sum<100); printf("\nsum=%d,n=%d\n",sum,n); } 20

5.3 用do-while语句实现循环结构程序设计 【例5_12】求2000~2050年之间的所有闰年。 #include <stdio.h> void main() { int y=2000,n=0,leap; do { if(!(y%4)) if (y%100) leap=1; else if(!(y%400)) leap=1; else leap=0; else leap=0; if(leap) { printf("%d ",y);n=n+1;if(!(n%5))printf("\n"); } y++; }while(y<=2050); printf("\n2000~2050之间共有%d个闰年 ",n); } 21

5.3 用do-while语句实现循环结构程序设计 【例5_13】如果我国人口以每年平均1.5%速度增长,问多少年后我国人口达到或超过15亿,设现在人口为13.2亿。 #include<stdio.h> void main() { int n=0; double p=13.2,r=.015; do { p=p*(1+r); n=n+1; }while(p<15); printf("%dyear,population=%f\n",n,p); } 22

5.4 用for语句实现循环结构程序设计 1.for语句格式 2.for语句功能 for(表达式1;表达式2;表达式3)语句; 或写成: 它的执行过程如下: 1)先求解表达式1。 2)求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3步;若其值为假(0),则结束循环,转到第5步。 3)求解表达式3。 4)转回上面第2步继续执行。 5)循环结束,执行for语句下面的一个语句。 23

5.4 用for语句实现循环结构程序设计 3.for语句应用形式 for语句最简单的应用形式也是最容易理解的形式如下: 循环变量赋初值总是一个赋值语句,它用来给循环控制变量赋初值;循环控制条件是一个关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用分号隔开。 例如:for(i=a;i<=b;i=i+c)循环语句; 先给i赋初值a,然后判断i是否小于等于终值b,若是,则执行循环体语句,之后i值增加c。再重新判断条件,直到条件为假,即i>b时,结束循环。 24

5.4 用for语句实现循环结构程序设计 4.for语句转换为while语句 在C语言中,for语句使用最为灵活,它完全可以取代while语句。对于for循环中语句的一般形式,可以用如下的while循环形式替代: 表达式1; while(表达式2) { 语句; 表达式3; } 25

5.4 用for语句实现循环结构程序设计 5.for语句使用注意事项 2)表达式1可以是设置循环变量初值的赋值表达式,也可以是其他表达式。 3)表达式1和表达式3可以是简单表达式也可以是逗号表达式。 4)表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或常量、变量,只要其值非零,就执行循环体。 26

5.4 用for语句实现循环结构程序设计 6.for语句使用举例 【例5_14】顺序将10个学生的成绩输入并输出。 #include<stdio.h> void main() { int s,i; for(i=1;i<=10;i++) { printf("请输入学生成绩:"); scanf(“%d”,&s); printf("第%d个学生成绩是:%d\n",i,s); } 27

5.4 用for语句实现循环结构程序设计 【例5_15】用for语句求 s=1+2+3+……+100 #include<stdio.h> void main() { int s=0,i; for(i=1;i<=100;i++) s=s+i; printf(“%d\n”,s); } 28

5.4 用for语句实现循环结构程序设计 【例5_16】用for语句求n的阶乘。 #include<stdio.h> void main() { int i,n,p=1; printf(“输入n:”); scanf(“%d”,&n); for(i=1;i<=n;i++) p=p*i; printf(“%d的阶乘=%d\n”,n,p); } 29

5.4 用for语句实现循环结构程序设计 【例5_17】给一个正整数n(n≥2),用for语句实现判断它是否是素数(即质数)。 #include<stdio.h> #include<math.h> void main() { int n,i,k,flag=0; printf("请输入正整数n"); scanf(“%d”,&n); k=int(sqrt(n)) for(i=2;i<=k;i++) if(n%i==0)flag=1; if(!flag) printf(“%d is a prime number.\n",n); else printf(“%d is not a prime number.\n",n); } 30

5.4 用for语句实现循环结构程序设计 【例5_18】猴子吃桃问题。这也是一个有趣的数学问题。 小猴子第一天摘下若干个桃子,当即吃掉一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上猴子想再吃时,见到只剩下一个桃子了。问第一天猴子共摘了多少个桃子。 这是一个递推问题,先从最后一天的桃子推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子……,但它属于倒推,即从最后的结果倒推出原始的状况。 设第n天桃子数为xn,已知它是前一天的桃子数x n-1的1/2再减去1。即xn= xn-1/2-1 或 xn-1=(xn+1)×2 利用此公式可以从第n天的桃子数推出前一天的桃子数。递推的初始条件为:x10=1 31

5.4 用for语句实现循环结构程序设计 #include<stdio.h> void main() { int x=1,n; for(n=9;n>=1;n--) x=(x+1)*2; printf("The number of peaches is:%d\n",x); } 32

5.5 循环嵌套 在一个循环体内又完整地包含另一个循环,称为循环的嵌套。几种类型的循环可以互相嵌套。例如可以在一个for循环中包含一个do循环,也可以在一个while循环中包含一个for循环。内外循环之间不得交叉。 当程序中有控制结构的互相嵌套时,其执行流程仍严格按照每个控制结构既定的流程进行。 33

5.5 循环嵌套 【例5_19】两重for嵌套的执行过程 #include<stdio.h> void main() 5.5 循环嵌套 【例5_19】两重for嵌套的执行过程 #include<stdio.h> void main() { int i,j; for(i=1;i<=3;i++) { printf("i=&d\n",i); for(j=1;j<=3;j++) printf("j=%d\n",j); } 34

5.5 循环嵌套 【例5_20】打印出乘法九九表。九九表是一个9行9列的二维表,行和列都要变化,而且在变化中互相约束。 5.5 循环嵌套 【例5_20】打印出乘法九九表。九九表是一个9行9列的二维表,行和列都要变化,而且在变化中互相约束。 #include<stdio.h> void main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%3d ",i*j); printf("\n"); } 35

5.5 循环嵌套 【例5_21】找出100~200之间的全部素数。 #include <stdio.h> 5.5 循环嵌套 【例5_21】找出100~200之间的全部素数。 #include <stdio.h> #include <math.h> void main() { int n,i,k,flag,m; for(n=101;n<=200;n=n+2) { k=sqrt(n); i=2; flag=0; while(i<=k&&!flag) if(n%i==0) flag=1; else i=i+1; if(!flag) { printf(“%d\t”,n); m=m+1; if(m%5==0) printf(“\n”); } } printf("\n"); } 36

5.5 循环嵌套 【例5_22】三重循环应用举例。 #include <stdio.h> void main() { 5.5 循环嵌套 【例5_22】三重循环应用举例。 #include <stdio.h> void main() { int i, j, k; printf("i j k\n"); for (i=0; i<2; i++) for(j=0; j<2; j++) for(k=0; k<2; k++) printf(“%d %d %d\n", i, j, k); } 37

三种循环都可以用来处理同一个问题,一般可以互相代替。 5.6 几种循环语句的比较 三种循环都可以用来处理同一个问题,一般可以互相代替。 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。 while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句功能最强,所以在实际中应用最广。 38

5.7 用break和continue语句提前结束循环 C语言提供break语句和continue语句,它们的作用就是结束循环。 1.break语句 1)break语句终止本层循环 break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,即终止本层循环。 39

5.7 用break和continue语句提前结束循环 #include<stdio.h> #include<math.h> void main() { int x,sum=0; while(1) { printf("请输入x:"); scanf(“%d”,&x); if(!x)break; sum=sum+x; printf("x=%d,sum is %d",x,sum); } printf("end"); 40

5.7 用break和continue语句提前结束循环 当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;当break用于循环语句中时,可使程序跳出循环语句而执行循环语句以后的语句。 3)break语句在循环语句中的应用 通常break语句总是与if语句联在一起,满足条件时便跳出循环。 4)使用break语句注意事项 (1)break语句对if-else的条件语句不起作用。 (2)在多层循环中,一个break语句只向外跳一层。 41

5.7 用break和continue语句提前结束循环 【例5_24】统计从键盘接收字符时按回车的次数,按esc键结束统计。 void main() { int i=0; char c; while(1) //设置循环 { c='\0'; //变量赋初值 while(c!=13&&c!=27) //键盘接收字符直到按回车或 esc 键 { c=getch(); printf("%c\n", c); } if(c==27) break; //判断若按 esc 键则退出循环 i++; //统计按回车键的次数 printf("the no. is %d\n", i); } printf("the end"); 42

5.7 用break和continue语句提前结束循环 continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环,即结束当次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。 43

5.7 用break和continue语句提前结束循环 #include<stdio.h> void main() { char c; while(c!=13) /*不是回车符则循环*/ { c=getch(); if(c==0x1b) continue; /*若按esc键不输出便进行下次循环*/ printf("%c", c); } 44

5.7 用break和continue语句提前结束循环 (1)while(表达式1) { 语句1 if(表达式2)break; 语句2 } 语句3 (2)while(表达式1) if(表达式2)continue; 45

5.8 循环结构程序设计举例 【例5_26】求水仙花数。 #include<stdio.h> void main() 5.8 循环结构程序设计举例 【例5_26】求水仙花数。 #include<stdio.h> void main() { int i,n=0,a,b,c; for(i=100;i<=999;i++) { a=i/100; // 得到百位上的数字 b=(i/10)%10; //得到十位上的数字 c=i%10; //得到个位上的数字 if(i==a*a*a+b*b*b+c*c*c) //判断是否为水仙花数 { n=n+1; //记录个数 printf(“%d\t”,i); //显示水仙花数 } printf("\n个数=%d\n",n); //显示个数 46

5.8 循环结构程序设计举例 【例5_27】百钱买百鸡。 5.8 循环结构程序设计举例 【例5_27】百钱买百鸡。 每只公鸡值5元,母鸡值3元,小鸡三只值1元。用100元买100只鸡,问公、母、小鸡各可买多少只? #include<stdio.h> void main() { float x,y,z; printf("公鸡\t母鸡\t鸡雏\n"); for(x=0;x<=100;x++) for(y=0;y<=100;y++) { z=100-x-y; if((5*x+3*y+z/3.0)==100) printf("%d\t%d\t%d\n",(int)x,(int)y,(int)z); } 47

5.8 循环结构程序设计举例 #include<stdio.h> void main() { float x,y,z; 5.8 循环结构程序设计举例 #include<stdio.h> void main() { float x,y,z; printf("公鸡\t母鸡\t鸡雏\n"); for(x=0;x<=19;x++) for(y=0;y<=33;y++) { z=100-x-y; if((5*x+3*y+z/3.0)==100) printf("%d\t%d\t%d\n",(int)x,(int)y,(int)z); } 48

5.8 循环结构程序设计举例 【例5_28】使用级数公式求π的值。 5.8 循环结构程序设计举例 【例5_28】使用级数公式求π的值。 根据下式,计算圆周率π的近似值,当计算到绝对值小于0.0001的通项时,认为满足精度要求,停止计算。 #include<math.h> #include<stdio.h> void main() { int s=1; float n=1.0,t=1,pi=0; 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); //输出计算结果 49