c语言 循环结构 课件

合集下载

《c语言循环结构》课件

《c语言循环结构》课件

while循环的用法与案例分析
1
while循环的语法和用法
while循环先检查条件,再执行循环体中
while循环的案例分析
2
的代码,当条件为假时结束循环。
一个经典的例子是猜数字游戏,直到猜
到答案才退出循环。
3
while循环的常见错误
循环条件不恰当、循环次数过多或过少 等是常见的while循环错误。
c语言中有三种循环结构:for循环、while循环和do-while循环。
for循环的用法与案例分析
for循环的语法和用法
for循环由初始化语句、循环条件 和更新语句构成,可以控制循环 次数。
for循环的案例分析
for循环的优化
一个简单的例子是遍历一个日历, 打印出一年中每一天的日期。
为了提高程序的性能,我们可以 使用循环展开或减少循环嵌套。
do-while循环的用法与案例分析
do-while循环的语法和用法
do-while循环和while循环很像,但至少会执行一次循环体中的代码。
do-while循环的案例分析
一个应用do-while循环的场景是菜单项选择,确保用户至少输入一次。
do-while循环的注意事项
需要注意的是,do-while循环的条件必须放在循环体的末尾。
2 常见问题
如果您有疑问或需要更多的帮助,请联系我们的技术支持。
《c语言循环结构》PPT 课件
本课程将深入讲解c语言的循环结构,帮助您编写更有效率的程序。
循环结构的定义与作用
什么是循环结构?
循环结构是一种程序控制结构,它能够重复执行一段代码。
循环结构的作用是什么?
循环结构可以帮助程序员编写更简洁、更高效的代码。通过循环,程序不需要重复写相同的 代码。

C语言课件-循环结构

C语言课件-循环结构

break 和 continue
#include "stdio.h" ↙ 输入 abc↙ int main(void) efgh ↙ { char c; 123 ↙ int i; break输出 abc for (i = 0; i < 10; i++) { c = getchar(); if (c == '\n') break; continue输出 continue; putchar(c); abcefgh1 } }
#include <stdio.h> int main(void) { int num; double grade, total; num = 0; total = 0; printf(“Enter grades: \n"); scanf("%lf", &grade); /* 输入第1个数*/ while (grade >= 0) { /* 输入负数,循环结束 */ total = total + grade; num++; scanf (“%lf”, &grade); }
START 位数count=0 输入一个数->number number<0? Y number=-number number=number/10 count++ Y number!=0? N 输出count END N
源程序
#include<stdio.h> int main(void) { int count, number; count = 0; printf(“Enter a number: "); scanf ("%d", &number) ; if (number < 0) number = -number;

C语言中 循环结构 ppt课件

C语言中 循环结构 ppt课件

int main() {
return 0;
}
10
5.2 for语句
for语句的一般形式如下:
for(表达式1;表达式2;表达式3) 循环体语句
说明:for语句属于“计数”型循环。
表达式1
表达式2 真(非0)
循环体语句
假(0)
表达式3
for语句流程图
12
For语句最常用、最简单的形式
• for(循环变量赋初值;循环条件;循环变量增值)
C语言中 循环结构
第五章 循环控制结构
2
本章知识点:
–while语句的一般形式及应用 –for语句的一般形式及应用 –do...while语句的一般形式及应用 –多重循环结构的使用
•break语句和continue语句
3
5.1 while语句
语句的一般形式如下: while (表达式) 循环体语句
return 0;
}
6
• 需要注意的几个问题:
(1)累加求和算法。这个程序采用的算法思想 称为累加求和,即:不断用新累加的值取代变 量的旧值,最终得到求和结果,变量sum也叫 “累加器”,初值一般为0。
(2)必须给变量赋初值。 (3)正确判断条件的边界值。 (4) 避免出现“死循环”。 (5)可能出现循环体不执行。 (6)while后面圆括号内的表达式一般为关系表
【例5.1】 求前100个自然数的和 。
#include <stdio.h> int main() {
int n,sum=0; for (n=1;n<=100;n++)
sum=sum+n; printf("sum=%d\n",sum); retur,计算并输出S(n)的值。 S(n)=(1*2)/(3*4)-(3*4)/(5*6)+(5*6)/(7*8)+…+(-1)(n-

C语言循环结构ppt课件

C语言循环结构ppt课件

pr查in循tf(环"s条um件,= %所以d\n循"环,su体m至);少执行一次pr。intf("sum = %d\n",sum);
} (2)退出do—while循环的条件与退} 出while循环的条件相同
10
一般格式:
for
for( 表达式1; 表达式2; 表达式3) {
循环体语句
}
表达式1
假(0) 表达式2
循环体 for语句等价于下列语句:
循表环达变式量1;增值/减值 while (表达式2) { 语句;
表达式3; }
12
例ffoorr用(语循句f环o最r变循简量环单赋求的初形值1式0;0:n循环条件;循环变量增值) 循环体 n1
#include <stdio.h> main() { int i,sum=0;
for(i=1; i<=100; i++) sum+=i;
printf("%d",sum); }
相当于: i=1,sum=0; while(i <= 100) {
sum = sum + i; i++; }
13
100
用上述三种循环语句求 s n
while语句:
n1
do-while语句:
n = 1;s = 0; while (n<=100)
说明:
(3)省略表达式3: 此时程序设计者应另外设法保证循环能 正常结束。如: for(i=1;i<=100;) { sum = sum + i; i++; }
17
for语句的使用格式灵活:
表达式类型任意,可省略,但分号“;”不可省

C语言课件(循环结构)

C语言课件(循环结构)
– 输入一个学生的成绩。 – 就进行累加。
循环结构
计数器控制的循环
设计方法:自上而下,逐步求精
算法的顶部(描述程序整体功能)
计算本次考试的班级平均分
划分成一系列较小的任务
初始化变量 输入考试的分数,求分数总和,并计数(统计分数个数)
计算出最后结果并显示班级平均分
循环结构
计数器控制的循环
进一步细化算法
for (counter = 1; counter <= 10; counter++)
printf("%d ", counter); }
循环条件
1 2 3 4 5 6 7 8 9 10
控制变量增1
循环结构
for语句
fo达式1>]; [<表达式2>]; [<表达式3>]) <循环体>;
while (counter<10) { printf("Enter result (1=pass, 2=fail):"); scanf("%d", &result);
if (result==1) passed++; else failed++; counter++; }
循环结构
嵌套的控制结构
源代码分析(续)
循环结构
while语句 do-while语句 for语句 跳转语句
break语句 continue语句 goto语句
程序设计举例
循环结构
while循环
while循环
当某个条件一直为真时重复执行某个动作。 举例:购物
… while 购物单上还有商品

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 i,sum=0;
设置循环 条件
for(i=1;i<=100;i++)
{
sum+=i;
}
printf("Sum = %d\n",sum);
}
程序的运行结果:
Sum = 5050
2021/3/26
C语言循环结构程序设计 ppt课件
9
C语言循环结构程序设计
说明:
(1) for语句的一般形式中的“表达式1”可以省略,此 时应在for语句之前给循环变量赋初值。注意省略表 达式1时,其后的分号不能省略。如 for(;i<=100;i++) sum=sum+i; 执行时,跳过“求解表达式1”这一步,其他不变。
while (表达式) 语句 当表达式为非0值时,执行while语 句中的内嵌语句。其特点是:先判断 表达式,后执行语句。
2021/3/26
C语言循环结构程序设计 ppt课件
23
例:用while循环求1~100的和。
#include <stdio.h> void main() {
设置循环条 件
int i=1,sum=0;
}
程序的执行结果:
Sum = 5050
2021/3/26
C语言循环结构程序设计 ppt课件
28
C语言循环结构程序设计
4.5.1 for语句和while语句
for循环语句比较灵活,可以将循环控制变量初始、循环变量修改和循环 控制表达式集中在一个for语句中,比较适合循环次数可预测的情况。 while循环适合不通过递增或递减循环控制变量的循环。
说明:

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

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

知识点精讲
printf(″%d\n″,fun(″056a0″)); } 【解析】 while循环是先判断条件,如果条件成立就执行语句,然后回到条件继续判断,直 到条件不成立就结束循环。while后的表达式为“*s<=′9′&&*s>=′0′”,当表达式的值为0时 循环结束,可以看出这道题就是把连续的数字字符转换成对应的数值,遇到非数字字符就结束, 所以最后的输出结果是56。 【答案】 56
知识点ቤተ መጻሕፍቲ ባይዱ讲
L7 i++; L8 } L9 printf("%f",s); L10 }
答案:第6行改成:{ s=s+1.0/i; //若不使用1.0/i,那么会把小数部分丢掉//
4.下列程序的运行结果是______2_,_-_1_____ #include "stdio.h" main) {int i=2,a=0; while ( i一) a++; printf ("% d,%d",a,i); }
第四章 循环结构程序设计
考纲要求
结构化程序的设计方法,for语句、while语句编程方法。
知识准备
高频考点:当型循环与直到型循环、循环控制变量、利用循环设计算法。 重难点分析:利用循环设计算法。
知识点精讲
知识点1 while循环
真题回顾 (2019年真题)下列程序的运行结果是___________ #include″stdio.h″ int fun(char s[]){ int n=0; while(*s<=′9′&&*s>=′0′) { n=10*n+*s-′0′; s++; } return n; } main(){
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
abc↙ ↙ efgh ↙ 123 ↙ abc
abcefgh1
4.4 求1! + 2! + …. + 100!
for (i = 1; i <= 100; i++){ item = i ! sum = sum + item; }
4.4.1 程序解析
调用函数 fact(i) 计算 i 的阶乘
4.4.2 嵌套循环
用循环计算 i 的阶乘
#include <stdio.h> 4.4.1 程序解析 double fact (int n); int main(void) 求1! + 2! + …. + { int i; double sum; sum = 0; for(i = 1; i <= 100; i++ ) sum = sum + fact (i); printf("1! + 2! + 3! + … + 100! = %e\n", sum); return 0; } double fact (int n) { int i; double result = 1; for (i = 1; i <= n; i++) result = result * i ; return result ; }
m不可能被大于 m/2 的数整 不可能被大于
i 取值 [2, m-1] 、 [2, m/2] 、 [2, m ]
例4-4源程序-判断素数 源程序- 源程序
Enter a number: 9 No
int main(void) { int i, m; Enter a number: 11 printf(“Enter a number: "); 11 is a prime number! scanf ("%d", &m); for (i = 2; i <= m/2; i++) 循环条件? 循环条件 循环的结束条件? 循环的结束条件 if (m % i == 0) break; if (i > m/2 ) printf("%d is a prime number! \n", m); else printf("No!\n"); for (i = 2; i <= m/2; i++) } if (m % i == 0) printf("No!\n"); else printf("%d is a prime number! \n", m);
4.2.2 do - while 语句
do { 循环体语句 } while (表达式 表达式) 表达式
循环体语句 假 表达 真式
先循环
后判断
do-while的下一条语句 的下一条语句
while 和 do-while 的比较
while 是先判别条件,再决定是否循环; 是先判别条件,再决定是否循环; do-while 是先至少循环一次 , 然后再根据 是先至少循环一次, 循环的结果决定是否继续循环。 循环的结果决定是否继续循环。
本章要点
什么是循环? 为什么要使用循环? 如何实现循环? 什么是循环 为什么要使用循环 如何实现循环 实现循环时,如何确定循环条件和循环体 实现循环时,如何确定循环条件和循环体? 怎样使用while 和 do-while语句实现次数不确定的 怎样使用 语句实现次数不确定的 循环? 循环 while 和do-while语句有什么不同 语句有什么不同? 语句有什么不同 如何使用break语句处理多循环条件 语句处理多循环条件? 如何使用 语句处理多循环条件 如何实现多重循环? 如何实现多重循环
break 语句
for(i = 2; i <= m/2; i++) while(exp){ if(m%i == 0){ 语句1 语句 printf("No!\n"); if (expb) break; break; 语句2 } 语句 printf("Yes"); }
for (i = 2; i <= m/2; i++) if (m % i == 0) break; if (i > m/2 ) printf("Yes"); else printf("No!\n");
4.1.1 程序解析-求π的近似值 程序解析- 的近似值
#include <math.h> pi = 3.141613 int main(void) { int denominator, flag; item=0.0 ? double item, pi; flag = 1; denominator = 1 ; item = 1.0; pi = 0; while(fabs (item) >= 0.0001) { item = flag * 1.0 / denominator; fabs(item) < 0.0001 pi = pi + item; flag = -flag; denominator = denominator +2; } pi = pi * 4; printf ( “pi = %f\n”, pi); return 0; }
4.2 统计一个整数的位数
从键盘读入一个整数,统计该数的位数。 从键盘读入一个整数,统计该数的位数。 4.2.1 程序解析 4.2.2 do - while语句 语句 4.2.3 循环语句的选择
4.2.1 程序解析-统计一个整数的位数 程序解析-
Enter a number: 12534 int main(void) It contains 5 digits. { int count, number; Enter a number: -99 count = 0; It contains 2 digits. printf(“Enter a number: "); Enter a number: 0 scanf ("%d", &number) ; if (number < 0) number = -number; It contains 1 digits. do { while (number != 0) { number = number / 10; number = number / 10; count ++; count ++; } } while (number != 0); printf("It contains %d digits.\n", count); return 0; }
for(表达式 表达式 表达式 表达式1; 表达式2; 表达式3) 表达式 循环体语句 表达式1; 表达式 ; while (表达式 { 表达式2) 表达式 for的循环体语句; 的循环体语句; 的循环体语句 表达式3; 表达式 ; }
while 和 for 的比较
for (i = 1; i <= 10; i++) sum = sum + i; i = 1; 循环变量赋初值 循环条件 循环变量的改变
4.1 用格里高利公式求 的近似值 用格里高利公式求π的近似值
使用格里高利公式求π的近似值, 使用格里高利公式求 的近似值,要求精 的近似值 确到最后一项的绝对值小于10 确到最后一项的绝对值小于 –4。
π
4
= 1− + − +…
3 5 7
1
1
1
4.1.1 程序解析 4.1.2 while语句 语句 4.1.3 输入一批学生的成绩,统计平均分 输入一批学生的成绩,
循 环 体
跳过continue后面的语句,继续下一次循环 后面的语句, 跳过 后面的语句
break 和 continue
#include "stdio.h" int main(void) { char c; int i; for (i = 0; i < 10; i++) { c = getchar(); if (c == '\n') break; continue; putchar(c); } }
循环体语句 假
表达式 真 循环体语句

表达式

do-while的下一条语句 的下一条语句
while的下一条语句 的下一条语句
4.2.3 循环语句的选择
if(循环次数已知) (循环次数已知) 使用for语句 使用 语句 else /* 循环次数未知 */ if (循环条件在进入循环时明确 循环条件在进入循环时明确) 循环条件在进入循环时明确 使用while语句 使用 语句 else /* 循环条件需要在循环体中明确 */ 使用do-while语句 使用 语句
while (i <= 10){ 循环体 } sum = sum + i; i++;
4.1.3 统计输入的一批学生的平均成绩
从键盘输入一批学生的成绩, 例4-2 从键盘输入一批学生的成绩,计算平均 分。 分析: 分析:
求累加和 确定循环条件
不知道输入数据的个数, 不知道输入数据的个数,无法事先确定循环次数 用一个特殊的数据 作为正常输入数据的结束标志, 特殊的数据作为正常输入数据的结束标志 用一个 特殊的数据 作为正常输入数据的结束标志 , 比如选用一个负数作为结束标志。 比如选用一个负数作为结束标志。
4.1.2 while 语句
while (条件 条件) 条件 循环体语句; 循环体语句
表达式 真 循环体语句 假
一条语句
循环条件 循环体
while下一条语句 下一条语句
while 语句说明
相关文档
最新文档