C语言-循环结构程序设计
100
n
n 1
while( )
5.5 提前结束循环 5.5.1 用break语句提前退出循环
• break语句可以用来从循环体内跳出循 环体,即提前结束循环,接着执行循环 下面的语句。
• 一般形式: break;
说明: break语句不能用于循环语句和switch 语句之外的任何其他语句中。
while语句和do-while语句的关系:同一个问题既可
以用while循环处理,也可以用do-while循环来处理 。
100
n
n 1
5.2 用while语句和do-while语句实现循环
编写程序
例题 5.2 求1+2+3+…+100的和 运行结果: 5050 #include <stdio.h> void main()
5.3 用for语句实现循环 5.3.1 for语句的一般形式和执行过程
• for语句最简单的形式:
for(循环变量赋初值;循环条件;循环变量增值)
例如: for(i=1;i<=100;i++) sum=sum+i;
相当于: i=1; while(i<=100) { sum=sum+i; i++; }
5.3 用for语句实现循环 5.3.1 for语句的一般形式和执行过程
• C语言中的for语句使用最为灵活,不仅可 以用于循环次数已经确定的情况,而且可 以用于循环次数不确定而只给出循环结束 条件的情况,它完全可以代替while语句。
• 一般形式: for(表达式1;表达式2;表达式3) 语句
5.3 用for语句实现循环 5.3.1 for语句的一般形式和执行过程
F1
5.3 用for语句实现循环
例题 5.5
人口增长预测。据2005年末统计,我国人口为 130756万人,如果人口的年增长率为1%,请计算
到 解哪题一思年路中国总人口超过15亿。
计算人口增长和计算存款利息的公式是相同的。假 设原来人口为 ,则一年后的人口:
p p0 (1 r)
其中r是年增长率。用此公式依次计算出每年的人 口,每算出一年的人口后就检查一下是否达到或超 过15亿?如果未达到或超过15亿,就再计算下一年 的人口,直到某一年的人口达到或超过15亿为止。
100
5.2 n
n 1
用while语句和do-while语句实现循环
例题 5.1
求 1+2+3+…+100 解题思路的和
(1)开始时使sum的值为0,被加数i第一次取值为1。开始进入循环结构。
(2)判别“i≤100”条件是否满足,由于i小于100,因此“i≤100”的值为真。所 以应当执行其下面矩形框中的操作。
{ double p=1, t=1, v;
volnme=1.299066e+011
int i;
for(i=1; i<64; i++) /* 执行63次循环 */
{
p = p * 2;
/* p是当前一个格子中的麦子粒数 */
t = t + p;
/* t是当前麦子总粒数 */
}
v = t / 1.42e8;
8*8=64 格),我感恩不尽,其他什么都不要了。”国王想, 这有多少!还不容易!让人扛来一袋小麦,但不到 一会儿全用没了,再来一袋很快又用完了。结果全 印度的粮食全部用完还不够。国王纳闷,怎样也算
100
n
n 1
5.3 用for语句实现循环
解题思路
麦子的总粒数是:
1 2 22 23 263
p=p*(1+r);
}
printf("year=%d,p=%e\n",y-1,p);
}
5.3 用for语句实现循环
说明:
注意区分变量p在不同阶段中的不同含义。 y代表年份。循环体中只有一个语句,用来计算从2006 年开始的各年的人口数。在for语句中设定的循环条 件是p<15亿,当某一年的p达到或超过15亿,就停止 循环,输出年份和当年的人口数。由于在最后结束循 环前y又加了1,因此在输出年份时应输出y-1的值而 不是y的值。
• 构成有效循环的条件:循环体和循环结束条件
5.2 用while语句和do-while语句实现循环 5.2.1 用while语句实现循环
while语句用来实现“当型”循环结 构
一般形式:
while (表达式) 语句
当表达式为非0值时,执行while语 句中的内嵌语句。其特点是:先判断 表达式,后执行循环体,即内嵌语 句。
{ int i,sum=0; i=1; do /* 在循环开始时不检查条件,先执行一次循环体 */ {sum=sum+i; i++; } while(i<=100); printf("说%d明\\:n″可,以s看um到);,结果和例5.1完全相同。
}
100
5.2 n
n 1
用while语句和do-while语句实现循环
/* v是总体积 */
printf("total=%e\n",t); /* 用指数形式输出麦子总粒数 */
printf("volume=%e\n",v);/* 用指数形式输出麦子总体积 */
}
5.3 用for语句实现循环
说明:
变量i用来控制循环的次数,开始时 i=1,在完成第1次循环后,i的值加1 变为2,由于2<64,所以执行第2次循 环,依此类推,当i变到63时,执行最 后一次循环,i再变为64,由于i不再 小于64了,不再执行循环。接着计算 体积,输出结果。
100
n
n 1
5.3
用for语句实现循环
编写程序
运行结果:
#include <stdio.h> void main()
year=2019,p=1.503007e+009
{
double p=1.30756e9,r=0.01;
int y;
for(y=2006; p<1.5e9; y++)
{/* 赋值号两侧的变量p代表不同含义 */
第五章
本章要点
循环的基本概念 不同形式的循环控制 多重循环问题
主要内容
5.1 程序中需要用循环结构 5.2 用while语句和do-while语句实现循环 5.3 用for 语句实现循环 5.4 循环的嵌套 5.5 用break语句和continue语句改变循环状态 5.6 几种循环的比较 5.7 程序举例 5.8 提高部分
{ sum=sum+i;/*应将该i用的花当括前号值括累起加来到,变以量复su合m中语句*/
i++;
/*形使式i出的现值.加1 */
}
(2)在循环体中应有使循环趋向于结束
}printf(″%d\\n″的,语s句um。);
5.2 用while语句和do-while语句实现循环 5.2.2 用do-while语句实现循环
例题 5.3
募集慈善基金10000元,有若干人捐款,每输
入一个人的捐款数后,计算机就输出当时的捐款总
和。当某一次输入捐款数后,总和达到或超过 10000
元时,即宣告结束,输出最后的累加值。
解题思路
解此题的思路是设计一个循环结构,在其中输入捐 款数,求出累加值,然后检查此时的累加值是否达 到或超过预定值,如果达到了,就结束循环操作。
F1
5.3 用for语句实现循环 5.3.2 for循环程序举例
一个变量开始时有一初值,通过一定的运算, 可以推算出一个新的值,再从这个新值又推出下一 个新值,即不断用计算出的新值去取代原有的值, 这种方法称为迭代。上面的计算公式p*(1+r)称为迭 代公式。迭代算法一般是用循环来实现的。迭代是 一种常用的算法,用人工实现很麻烦,而用计算机 实现却十分方便。
分别计算出每一格的麦子粒数,把它们加起来,就 得到总粒数。据估算,1 小麦约有1.42 粒,可以 计算出小麦的体积。 可以用for语句实现循环。
100
n
n 1
5.3
用for语句实现循环
编写程序
#include <stdio.h>
运行结果:
void main()
total=1.844674e+019
F1
5.3 用for语句实现循环 5.3.2 for循环程序举例
例题 5.4
国王的小麦。相传古代印度国王舍罕要褒赏他的 聪明能干的宰相达依尔(国际象棋的发明者),国王 问他要什么?达依尔回答说:“国王只要在国际象
棋 的棋盘第1个格子中放1粒麦子,第2个格子中放2粒 麦子,第3个格子中放4粒麦子,以后按此比例每一 格加一倍,一直放到第64格(国际象棋的棋盘
do-while语句的特点:先 一般形式: do
执行循环体,然后判断
循环体语句
循环条件是否成立。
while(表达式);
执行过程:先执行一次指定的循环体行循环体语句,如此反复,直到表达式的值 等于0 (“假”)为止,此时循环结束。
5.2 用while语句和do-while语句实现循环 编写程序
#include <stdio.h>
运行结果: 5050
void main()
C语言 第五章-循环结构程序设计
执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
循环结构程序设计(C语言实验报告)
循环结构程序设计(C语言实验报告)实验目的:1. 掌握循环结构程序设计流程2. 熟悉while、do-while和for循环语句的使用3. 掌握循环语句的嵌套应用实验原理:循环结构是一种非常重要的程序设计结构,其目的是为了让程序可以重复执行一段代码块,从而达到省去大量代码重复编写的目的,也可以是让程序能够按照用户的需求反复执行一段代码块。
在C语言中,常用的循环结构有while、do-while和for三种,这三种循环语句的基本语法结构是:while(循环条件){循环体语句;}其中,while循环和do-while循环的区别在于:while循环条件成立时,不一定会执行一次循环体,但do-while循环条件成立时,会先执行一次循环体,然后判断循环条件是否成立;至于for循环,则是将循环条件、循环初值和循环增量三个要素集成在一起,使用比较方便。
另外,循环结构也可以进行嵌套应用,即在循环体内部再嵌套一个循环,这样可以实现多个变量的循环控制。
应用实例包括如下:1. 打印九九乘法表2. 对一个数组进行排序3. 多重循环实现字谜游戏实验内容:1. while循环:目的是求出1~100的整数和,并在程序运行过程中输出1~100的所有整数。
目的是输入若干个数字,计算它们的平均值。
3. for循环:目的是输入一个数n,求1~n中可以被3或5整除的所有整数和。
4. 循环嵌套:目的是打印九九乘法表。
实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。
相信这对于日后的程序设计和代码优化应用会非常有帮助。
C语言程序设计_05循环结构程序设计
5.2 DO…WHILE循环结构 5.2.1 DO…WHILE语句的格式 DO…WHILE语句的一般格式为: DO 语句 WHILE(表达式); DO…WHILE语句中的表达式表示循环的条件,可 以是任何表达式,常用的是关系表达式和逻辑表达 式。表达式必须加圆括号。语句是重复执行的部分, 称作循环体。
由亍循环体在表达式2乊后表达式3乊前执行所以把循环体语句放在表达式3的开头循环体语句不原来的i构成逗号表达式作为循环语句新的表达式3从而也就没有循环体语句了
第5章 循环结构程序设计
5.1 WHILE循环结构 5.2 DO…WHILE循环结构 5.3 FOR循环结构 5.4 与循环有关的控制语句 5.5 3种循环语句的比较 5.6 循环的嵌套 5.7 循环结构程序举例 本章小结
图5-6 FOR语句执行过 程
FOR语句的执行过程如图5-6所示。具体由以下几步 完成: (1)求表达式1。 (2)求表达式2,并判定其值为0或非0。若值为非0, 转步骤(3);否则结束FOR语句。 (3)执行语句,然后求表达式3。 (4)转向步骤(2)。 由FOR语句的执行流程可知,表达式1的作用是为循 环控制的有关变量赋初值,表达式2是循环控制条件, 表达式3用于修正有关变量,语句是重复执行部分。
【例5.7】输入20个数,求出其中的最大值与最小值。
5.3.3 FOR语句的各种变形 1.在FOR语句中省略表达式 FOR语句中的3个表达式可以部分或全部省略,下面 给出语句的4种基本变形。 (1)表达式1移至FOR语句前,但它后面的分号必 须保留。这时FOR语句的形式为: 表达式1; FOR(; 表达式2; 表达式3) 语句
(2)表达式3移至循环体语句之后,但它前面的分 号必须保留。FOR语句的形式为: FOR(表达式1; 表达式2;) { 语句; 表达式3; } 对于求P=5!的程序段,省略表达式3,将其放在循环 体中,则程序段写成:
C语言程序设计:第5章 循环结构
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;
C语言循环结构程序设计
i=-i;
//然后对i取负,得到它的绝对值
}
if(i==0)
printf("%d",i);
while(i!=0)
{
r=i%10;
printf("%d",r);
i=i/10;
}
printf("\n");
}
注意:循环体的有效范围 例: i=1; while(i<=100)
putchar(‘*’); i++;
i++;
i=10,iSum=55 1+2+3+...+10=55
} while(i<=10);
printf("1+2+3+...+10= %d\n",iSum);
}
例5.7 将一个给定的整数反序输出。
#include "stdio.h"
void main()
{
int i,r;
printf("\nInput an integer:");
{
****
for(j=1;j<=i;j++)
*****
putchar('*');
putchar('\n');
}
}
例5.12 求100以内的全部素数。
void main() {
int m,n,i,prime; i=0; for(m=2;m<=100;m++) {
void main()
{
int m,n,r;
printf("please input two positive integers:");
C语言程序设计循环结构程序设计
假
体现式
真
语句
假如体现式旳值一开始就为0,则语 句一次也不会被执行。
上一页
下一页
while语句举例
问题: 求学生旳平均成绩,以输入负数成绩为结束
算法分析:
1. 定义变量score存储学生成绩,定义s=0存储累加旳成绩,
定义n=0统计录入旳成绩数目。
2. 输入第一种学生旳score
3. 若score>=0,执行第4步,不然执行第7步
上一页
下一页
例: 求 1+2 +…+99
分析:用变量i从1到99循环, 把i旳值累加到变量s中,最 终输出s旳值。
程序如下:
#include<stdio.h> main( ) { int i,s=0;
for(i=1;i<=99;i++) s=s+i;
printf(“s=%d”,s); }
上一页
下一页
在某些情况下,for语句中旳体现式1、2、3都能够 省略,而改用其他旳方式来实现这些功能。我们还用 上面旳例子阐明for语句省略体现式旳情形。
上一页
下一页
1.省略体现式1: #include<stdio.h> main( ) { int i=1,s=0;
for(;i<=99;i++) s=s+i;
因为do-while语句至 少要被执行一次,特
别要注意n和s旳取值 问题!
s=s+score;
}while(score>=0);
if(n>1) printf (“ \n %f” ,(s-score)/(n-1));
else printf(“no student score!”);
C语言程序设计-循环
",就继续执行循环体语句。直至
条件不满足为止。
可能执行很多次
只执行一次
如何设定循环条件是保证while结构正常工作的关键。
100
例:求1~100之和,即 i i 1
#include <stdio.h> main ( )
开始 定义变量i,sum
{ int i, sum; sum=0;
i=1 sum=0
n3=i-i/10*10; 输出
if(n1*n1*n1+n2*n2*n2+n3*n3*n3==i)
printf ("%d=%i<d1+0%00d+%dY\n",i,n1,n2,n3);
i++;
}while (i<1000);
N
}
结束
for 循环结构
for (初值表达式; 循环条件; 增量表达式)
{
…… if (x>0) break; …… if (m<3 && y>0 break; …… }
注意:
1. for循环应用很灵活,是否需要省略某个表达 式,完全根据题目的要求和解题的思路确定, 没有硬性规定。
2. 省略前两个表达式的时候,分号不能省略。
例:找出大于300的最小的水仙花数。
水仙花数:153=13+53+33
i=1;
循环变量设定
while (i<=100)
{
循环条件
sum=sum+i;
i=i+1;
循环体
i≤100? Y
sum=sum+1
i++
C语言程序设计——循环结构
C语言程序设计——循环结构
一、什么是循环结构
C语言中的循环结构用于重复执行程序代码,它是程序设计中的一种非常重要
的基本结构。
循环结构可以让程序在满足特定条件的情况下重复执行指定的代码块,这在一些需要大量重复工作的情况下非常有用。
C语言中主要有三种类型的循环结构:for循环、while循环和do-while循环。
它们都可以用来实现重复执行特定的代码块,但是不同的循环结构有不同的使用方式和特点。
二、for循环
for循环是C语言中最常用的循环结构之一,其语法格式如下:
for (initialization; condition; increment/decrement) {
// 代码块
}
其中,initialization是初始化表达式,在循环开始前只执行一次,用于初始化
循环变量;condition是循环条件,只要满足该条件就会一直执行循环体;increment/decrement是增量表达式,每次循环结束后都会执行,用于改变循环变
量的值。
for循环的使用非常灵活,可以适用于多种循环任务。
例如,对于一个数组,
我们可以使用for循环来遍历每一个元素:
``` int arr[5] = {1, 2, 3, 4, 5}; for (int i = 0; i < 5; i++) { printf(。
c语言 第5章循环结构(while do-while for)
第1次运行: Input data: 11 22 33 44 55 66 77 88 99 0 1 2 11 22 33 44 55 66 77 88 99 0 sum=495 第1次运行: Input data: 0 0 sum=0 sum的初值与0的和
5.4 for语句
#include <stdio.h> int main() { int i=1,sum=0; while (i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; for (i=1;i<=100;i++) } #include <stdio.h> int main() { int i=1,sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); return 0; }
i++ for ( i = 1; i <= 100; i = i + 1 ) printf ( “**********\n” );
语句是?
【例1】在3~100之间所有3的倍数中,找出个位 数为2的数。
编程点拨 3~100内3的倍数有3 6 9 … 99 for ( i=3; i<=100; i=i+3 )
第1次运行: Input data: 11 22 33 44 55 66 77 88 99 0 1 2 11 22 33 44 55 66 77 88 99 sum=495 第2次运行: Input data: 0 (空一行) sum的初值 sum=0
C语言第6章循环结构程序设计
第6章循环控制本章要求:1、初步熟悉用计算机解决问题的思路。
2、掌握while、do-while、for语句的特点和使用方法。
3、掌握break、continue语句的用法。
4、熟悉一些常见问题的算法及其C语言实现。
§6.1 概述循环:反复执行称为“循环体”的程序段。
循环控制常用于数学迭代、对象遍历等问题的求解,几乎所有实用程序都包含循环。
特别是在现代多媒体处理程序(图像、声音、通讯)中,循环更是必不可少。
Intel公司为了加快循环程序的执行,在CPU硬件中加入多媒体扩展指令MMX(Multi-Media-eXtension );AMD在CPU中加入3D Now!指令。
循环结构是结构化程序三种基本结构之一。
(顺序结构、分支结构)。
根据开始循环的初始条件和结束循环的条件不同,C语言中用如下语句实现循环1、用goto语句和if语句构成循环。
2、用while语句。
3、用do-while语句。
4、用for语句。
§6.2 goto语句一般形式:goto 语句标号作用:无条件转向“语句标号”处执行。
“语句标号”是一个标识符,它表示程序指令的地址。
goto语句不符合结构化程序设计准则,因为无条件转向使程序结构无规律、可读性差。
一般应避免使用goto语句,但如果能大大提高程序的执行效率,也可以使用。
[例6.1] 用if语句和goto语句构成循环,求。
main(){int i,sum=0;i = 1;loop:if (i <= 100){ sum = sum + i;i++;goto loop;}printf("%d",sum);}§6.3 while语句一般形式:while(表达式) 语句作用:实现“当型”循环。
当“表达式”非0(真)时,执行“语句”。
“语句”是被循环执行的程序,称为“循环体”。
特点:先判“表达式(条件)”。
[例6.2]main(){int i,sum=0;i = 1;whie (i <= 100){sum = sum + i;i++;}printf("%d",sum);}注意:1、注意给出循环的初始条件,如本例中“sum=0、i=1”。
