C语言程序设计--循环例子.ppt

合集下载

C语言程序设计循环结构程序设计幻灯片

C语言程序设计循环结构程序设计幻灯片

printf("%d\n",su
m);
2021/5/15
x
求: s n 流程图 n 1
17
开始
void main()do while {
int n=1,s=0,x; scanf("%d",&x); do {s=s+n; n++;} while (n<=x); printf("s=%d\n",s); }
一般为关系表达式 或逻辑表达式,也 可以是C语言其他类 型的合法表达式
用来控制循环体是 否被执行
称为内嵌语句,可 以是基本语句、控 制语句,也可以是 复合语句
是循环重复执行的 部分
2021/5/15
9
语句一般格式 while (表达式) {语句组}
功能:计算“表达式〞的值,为非0〔逻辑 真〕时,重复执行内嵌语句,每执行一次, 就判断一次表达式的值,直到表达式的值 为0 时完毕循环,转去执行while后面的语 句。
void main() {int s=0,x; scanf("%d",&x); while (x<=10)
{s=s+x; 循环没有 x++;} 被执行
printf("s=%d\n",s)p; rintf("s=%d\n",s);
}
}
如输入为1和12,两程序各输出情况
输入12时: 输出
输出:s=0
2021/5/15
2021/5/15
do-while循环的算法
16
流程图
循环体
N-S结构图 循环体
当表达式为真

C语言第5章-循环结构程序设计PPT课件

C语言第5章-循环结构程序设计PPT课件
sum=sum+i i++
当i<=10 (直到i>10) 输出sum
#include "stdio.h" int main() {
int i,sum; i=1; sum=0; do { sum=sum+i; i++; }while(i<=10);
至少执 行一次
循环体语句
真 表达式 假
说明
printf("sum=%5d\n",sum); return 0;
7
举例
例5.2 设s=1×2×3×……×n,求s不大于400000时 最大的n。
#include <stdio.h>
int main( )
{ int n=1; long int s=1;
前n项的乘积
P81
while(s<=400000)
{
n=n+1;
s=s*n;
}
printf("不大于400000时的最大n为:%d\ns值为:%ld\n",n-1,s/n);
输入:1 输出:sum=55 输入:11 输出:sum=0
sum=55 sum=11
什么情况下两 者结果相同?
11
§5.3 for语句
P87
格式 for (表达式1;表达式2;表达式3) 语句
for (循环变量赋初值;循环条件;循环变量增值) 语句
执行 过程
求解表达式1
假 表达式2
真 循环体语句
求解表达式3
一、实现循环结构的控制语句 二、循环嵌套 三、循环结构程序举例
1
• while语句 • do-while语句 • for语句 • break、continue语句 • 几种循环的比较

C语言循环程序设计PPT教学课件

C语言循环程序设计PPT教学课件
for (i=1;i<=9;i++) /* 1 */ { for(j=0;j<=9;j++) /* 2 */
{ for(k=0;k<=9;k++) if(101*i+20*j+101*k==1231) printf("x=%d,y=%d,z=%d\n",i,j,k);
} /* end of 2 */
if (m%i==0) { f=0;
break; } if (f) printf(“yes”); else printf(“no”); }
2020/12/12
for (i=2;i<m/2;i++) for (i=2;i<sqrt(m);i++)
if (f==1) printf(“yes”);
14
【例2】给出程序的含义.(break与continue比较)
} /* end of 1 */
}
2020/12/12
10
6.7 几种循环的比较
•四种循环可以互相代替,但不提倡用goto型循环 •while 和do while型循环:
循环变量初始化的操作应在while 和do while语 句之前完成;在while后指定循环条件;循环体中 应有可使循环结束的语句,
main()
{
int n,i=1,sum=0;
printf(“input the n=”);
scanf(“%d”,&n);
loop: if (i<=n)
{
sum+=i++; goto loop; }
printf(“the sum is %d\n’,sum);

C语言循环语句PPT课件

C语言循环语句PPT课件
i=1; while(i<=100) { sum=sum+i;
i++; } printf("%d",sum); }
循环条件
循环终值 循环体语句
27.12.2020
.
6
例: 显示1~10的平方
#include <stdio.h> main() { int i=1;
while(i<=10) { printf("%d*%d=%d\n",i,i,i*i);
}
while()
{ ……
}
…...
27.12.2020
.
}
14
例: 我国古代数学家张丘建在《算经》中出了一道题“鸡翁一, 值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡, 问鸡翁、鸡母、鸡雏各几何?”
解题思路:
利用以前学过的数学知识列方程。 假设鸡翁数为x,鸡母数为y,鸡雏数为z。列方程为:
x+y+z=100 ……① 5x+3y+z/3=100……②
do
……
continue;
…...
真(非0)
while 表达式
表达式 假(0) 真(非0)
…… continue;
……
表达式3
假(0)
27.12.2020
.
25
例:把100~200之间的不能被3整除的数输出
main()
{
int n;
for(n=100;n<=200;n++)
{if(n%3==0)
continue;
3、 while和do-while循环的循环变量初值应在 while和do-while循环之前完成。

c语言for循环 ppt课件

c语言for循环 ppt课件

例: 问程序输出的结果?
main() { int i=1,a=0;
for(; i<=5; i++) {
do { i++; a++;
} while(i<3);
输出:
a=3 ,i=8
i++; } printf(“a=%d,i=%d\n”,a,i);
}
21
(2). 表达式2一般是关系表达式或逻辑表达式,但也可以是 其它类型表达式,只要其值为非零,就执行循环体.
如:
for(i=0; ( c=getchar( ) ) != ‘\n’ ; i+=c) ;
不断输入字符,将ASCII码累加, 直到输入一个换行符.
16
(3). f or循环的条件检查总是在循环开始前进行的,如果
{ int i=1, sum=0;
for( ; ; ) { sum+=i;
i++; if( i>10000) break ; }
}
这种无限循环可用 break 语句来终止循环, 避免产生死循环.
10
补充: 逗号运算符(顺序运算符):
级别最低的一种。用它将二个表达式联起来,形成逗号
表达式。如:
表达式1,表达式2
for(sum=psum=0.0, i=0 ; i<10 ; i++)
{
注 意
scanf("%f",&x);
若输入为0 ,结束.
这 if(fabs(x)<1e-4) break;

sum+=x;

//求这些数的总和

C语言循环结构程序设计 ppt课件

C语言循环结构程序设计 ppt课件

int i,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("Sum = %d\n",sum);
}
2021/3/26
C语言循环结构程序设计 ppt课件
25
C语言循环结构程序设计
do~while语句的一般形式为: do { 循环体语句; }while (表达式);
Do~whil e循环流程
(2) 求解表达式2,若其值为真(值为非0), 则执行for语句中指定的内嵌语句,然后 执行下面第(3)步。若为假(值为0),则 结束循环,转到第(5)步。
(3) 求解表达式3。
(4) 转回上面第(2)步骤继续执行。
(5) 循环结束,执行for语句下面的一个语 句
2021/3/26
C语言循环结构程序设计 ppt课件
2021/3/26
C语言循环结构程序设计 ppt课件
12
C语言循环结构程序设计
说明:
(4) 可以省略表达式1和表达式3,只有表达式2,即只
给循环条件。如:
for(;i<=100;)
while(i<=100)
{sum=sum+i; 相当于 {sum=sum+i;
i++;}
i++;}
在这种情况下,完全等同于while语句。可见for语句
while(i<=100)
{
控制循环次
sum+=i;

i++;
}
printf("Sum = %d\n",sum);

C语言程序设计第5章-循环结构程序设计ppt课件

C语言程序设计第5章-循环结构程序设计ppt课件
分析:循环进行的条件是: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是素数或非 素数的信息。
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);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。

C语言程序设计--循环例子ppt课件

C语言程序设计--循环例子ppt课件

void main()
对应的等{级。
int n;
printf("请输入成绩:");
scanf("%d",&n);
switch ((int)(n/10))
{
case 10:
printf("成绩%d的等级为优秀\n",n);
case 9:
printf("成绩%d的等级为优秀\n",n);
case 8:
printf("成绩%d的等级为良好\n",n);
重复上述过程,共经过n-1趟冒泡排序后,排序结束
2020/4/27
printf("%d is a prime number\n", m);
else
printf("%d is not a prime number\n", m);
return(0);
} 2020/4/27
.
C语言程序设计
7.4 程序举例
【例7.6】模拟自动饮料机
——基础篇
#include "stdio.h" void main() {
C 语言程序设计 —基础篇
第 7 章 简单程序设计之二
——基础篇
本章内容提要
多分支选择结构—switch语句 循环嵌套 break语句和continue语句 程序举例
2020/4/27
.
C语言程序设计
教学目标
——基础篇
在三种基本结构的基础上,结合本章介绍流 程 控 制 的 其 他 几 个 语 句 : switch 语 句 、 break语句和continue语句及循环的嵌套, 实现复杂的算法,设计出结构清晰、功能强大 的程序,对C语言程序开发设计有比较深刻的 认识。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
出错啦!?
请输入成绩:78↙ 成绩78的等级为中等 成绩78的等级为及格 成绩78的等级为不及格


在“switch”语句中,“case 常量表达 式”只相当于一个语句标号,表达式的 值和某标号相等则转向该标号执行,但 不能在执行完该标号的语句后自动跳出 整个switch 语句,因此会继续执行所 有后面语句的情况。 为此,C语言提供了一种break语句, 其功能是可以跳出它所在的switch语句。
{ int i,j; for (i=1;i<=9;i++) {
程序运行情况如下: 1*1=1
ห้องสมุดไป่ตู้
for (j=1;j<=i;j++) printf("%d*%d=%-3d",i,j,i*j);
} }
2*1=2 2*2=4
printf("\n");
3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16

case语句出 现的次序并 不影响执行 结果。
【例7.1】编写程序,对学生成绩进行等级评定。将成绩分为几个 等级:0~59分为不及格,60~69分为及格,70~79分为中等, 80~89分为良好,90~100分为优秀。要求输入一个成绩,输出其
void main() { 对应的等级。 int n; printf("请输入成绩:"); scanf("%d",&n); switch ((int)(n/10)) { case 10: printf("成绩%d的等级为优秀\n",n); case 9: printf("成绩%d的等级为优秀\n",n); case 8: printf("成绩%d的等级为良好\n",n); case 7: printf("成绩%d的等级为中等\n",n); case 6: printf("成绩%d的等级为及格\n",n); default: printf("成绩%d的等级为不及格\n",n); 2019/3/27 } }
2019/3/27
请输入成绩:78↙ 成绩78的等级为中等
使用switch语句时还应注意以下几点




switch后面圆括号内表达式的值和case语句中常量表 达式的值,都必须是整型的、枚举型的或字符型的, 不允许是浮点型的。在case后的各常量表达式的值不 能相同。 每个 case 子句既可以是一条语句,也可以是多条语句。 当是多条语句时,不需要用花括号括起来。 各个case子句和default子句的先后顺序可以变动,而 不会影响程序执行结果。 default子句可以省略不用。 多个case 的后面可以共用一组执行语句 。如例 7.1 中 等级为优秀的判断程序可改为:
2019/3/27
( 1) for() { … while() {…} … }
( 2) do{ … for() {…} … }while();
( 3) while() { … for() {…} … }
( 4) for() { … for() { … } … }
2019/3/27
【例7.2】打印乘法小九九表。

2019/3/27
7.1 多分支选择结构程序设计
1、语句形式:
switch (表达式) { case 常量1: 语句1; 数值型 或 case 常量2: 语句2; 字符型 case 常量3: 语句3; ....... 常量表达式的值必须 case 常量n: 语句n; 互不相同,否则执行 default : 语句n+1;时将出现矛盾,即同 一个开关值,将对应 } 多种执行方案。 2019/3/27
2019/3/27
将上面的例7.1修改如下:
void main() { int n; printf("请输入成绩:"); scanf("%d",&n); switch ((int)(n/10)) { case 10: printf("成绩%d的等级为优秀\n",n);break; case 9: printf("成绩%d的等级为优秀\n",n); break; case 8: printf("成绩%d的等级为良好\n",n); break; case 7: printf("成绩%d的等级为中等\n",n); break; case 6: printf("成绩%d的等级为及格\n",n); break; default: printf("成绩%d的等级为不及格\n",n); } }
C
语言程序设计 —基础篇
第 7 章 简单程序设计之二
本章内容提要



多分支选择结构—switch语句 循环嵌套 break语句和continue语句 程序举例
2019/3/27
教学目标
在三种基本结构的基础上,结合本章介绍流 程 控 制 的 其 他 几 个 语 句 : switch 语 句 、 break语句和continue语句及循环的嵌套, 实现复杂的算法,设计出结构清晰、功能强大 的程序,对C语言程序开发设计有比较深刻的 认识。
根据表达式的不同值 ,选择不同的程序分 千万不 支,又称开关语句。 能接(;) 号
2、语句执行流程:
计算表达式

=
简单语句或 复合语句
=
常量2 语句2
=

=
常量n 语句n
=
其它 语句n+1
常量1 语句1
break
指语句的最 后一条是否 为break
2019/3/27

break



break 有
2019/3/27
switch((int)(n/10)) { case 10: case 9: printf("成绩%d的等级为优秀\n"); break; … }
2019/3/27
7.2 嵌套循环结构程序设计
在一个循环内又完整地包含另一个循环,称为 循环的嵌套。for语句可以与while语句、dowhile语句相互嵌套,构成多重循环,例如:
使用一个循环9次的循环语句,每次循环打印一行:
for (i=1;i<=9;i++) { 打印第i行; }
打印第i行,循环i次,每次循环打印一个表达式: for (j=1;j<=i;j++) { 打印第j个表达式; }
打印完一行后换行
2019/3/27
#include <stdio.h>
void main()
相关文档
最新文档