C语言设计课件:第6章 循环控制

合集下载

C语言程序设计第五版谭浩强 ppt课件

C语言程序设计第五版谭浩强 ppt课件

Ctrl+KV--------块移动
Ctrl+KY-------块删除 Ctrl+KH--------块隐藏
窗口操作:
F5-----窗口缩放 F6-----窗口切换
程序调试:
<>
F8-----Step over
F7-------Trace into
/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
预处理命令
/* This is the main program */
void main() { int a,b,sum; /*定义变量*/ 函数
注释

a=10;

b=24;
sum=add(a,b);
空类型void
短整型short 整型int 长整型long 单精度型float
双精度型double
<
定义类型typedef
C语言程序设计
第一章 C语言概述
§1.3 简单的C程序介绍
例1.1 第一个程序This is a c program .
/* example1.1 The first C Program*/
第一章 C语言概述
C语言结构特点
❖函数与主函数
程序由一个或多个函数组成
必须有且只能有一个主函数main(),可以放在程序中任一 位置
程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
❖程序语句
C程序由语句组成 用“;”作为语句终止符
❖注释
/* */为注释,不能嵌套
C语言运算符丰富(附录C)

C语言第四版课件第6章-循环控制

C语言第四版课件第6章-循环控制

源程序: #include<stdio.h> void main( ) { int sum=0,i;
scanf(“%d”,&i); do { sum=sum+i;
i=i+1;} while ( i<=100 ); printf(“sum=%d\n”,sum); }
2021/8/2
14
while和do while循环
一般形式:do
语句; while(表达式)
#include <stdio.h> main() { int i,sum=0;
i=1; do { sum=sum+i;
i=i+1; } while(i<=100); printf("%d",sum); }2021/8/2
执行流程:
do
循环体
真(非0)
while expr
循环变量增值
i++;
goto loop;
}
printf("%d",sum);
}
循环条件 循环变量初值 循环变量终值
循环体
2021/8/2
6
循环的概念
循环程序设计:在满足循
环条件时,反复执行循环体 中的语句。
循环的特点:
循环体中的语句,在条件 满足的情况下,可反复执 行
循环构成:
1循环条件(循环变量)
goto 语句标号; ……
标号:语句;
#include <stdio.h> main() { int i,sum=0;
i=1; loop: sum+=i;
❖功能:无条件转移语句
❖作用:

工学第6章循环控制课件

工学第6章循环控制课件
❖ if +goto 语句(不符合结构化程序设计原则, 故一般不用)
❖ while 语句 ❖ do-while 语句 ❖ for 语句
Page 2
C语言 程序设计
第6章 循环控制
第6章 循环控制
举例 求1—100之间所有整数的和
开始


0→sum

1→i


i<=100

sum+i→sum
i+1→i
printf("\n");
}
}
Page 20
C语言 程序设计
第6章 循环控制
6.6 循环结构程序设计举例
举例:累加、连乘算法
❖累加算法之累加通式:
累加和变量=累加和变量+累加项
❖连乘算法之连乘通式:
连乘积变量=连乘积变量*连乘项
算法举例:
❖求和、求平均
❖求π的近似值
❖求n!
❖求1!+2!+ … +n!
C语言 程序设计
举例
第6章 循环控制
从键盘上输入若干个整数,求总和及平均值,输入-1结束
#include <stdio.h>
void main( )
{ int x, i=0; float sum=0, aver;
scanf("%d",&x);
while ( x!=-1 )
{sum+=x;
或 for (; x!=-1;)
格式:do 语句 while (表达式) ;
语句 循环体
循环体 直到条件成立时
典型的 直到型 循环
表达式 假(0) 真(非0)

C语言:循环控制程序PPT35页

C语言:循环控制程序PPT35页

6.4 循环的嵌套
与if语句相同, 当循环体中又包含了另一个完整 的循环语句时–––循环嵌套。
C语言的循环结构, 均可以相互嵌套:
例如 : do { while(…) { for( …) { } } }while(…)
C语言:循环控制程序
6、纪律是自由的第一条件。——黑格 尔 7、纪律是集体的面貌,集体的声音, 集体的 动作, 集体的 表情, 集体的 信念。 ——马 卡连柯
8、我们现在必须完全保持党的纪律, 否则一 切都会 陷入污 泥中。 ——马 克思 9、学校没有纪律便如磨坊没有水。— —夸美 纽斯
10、一个人应该:活泼而守纪律,天 真而不 幼稚, 勇敢而 鲁莽, 倔强而 有原则 ,热情 而不冲 动,乐 观而不 盲目。 ——马 克思
例如 : sum=0; i=1;
for ( ; i<=100 ; ) { sum=sum+i; i++; }
循环结构例程
例程6-4 :
输出[ 1,99]不 能被2或3整除 的数,按5个数 一行的格式排 列。
void main( ) { int I, j=0;
for( I=1; I<100; I++ ) { if ( I%2 || I%3 )
for ( i=1; i<=100; i++) sum+=i;
for语句与while、do-while互换用, 但for直观、简单、方便。
i=1; while(i<=100) { sum+=i; i++}
i=1; do { sum+=i; i++; } while( i<=100 )

C语言(谭浩强版)第6章循环控制ppt课件

C语言(谭浩强版)第6章循环控制ppt课件
#include <stdio.h>
main() { int i,sum=0;
for(i=1;i<=100;i++) sum+=i;
printf("%d",sum); }
. 11.08.2020 11.08.2020
expr1; while(expr2) {
循环体语句; expr3; }
C语言程序设计
条件表达式不成立(为零) 循环体内遇break,return,goto
❖无限循环: while(1)
循环体;
. 11.08.2020 11.08.2020
100
例 用while循环求
n
n 1
#include <stdio.h>
void main()
{ int i,sum=0;
循环初值
i=1;
while(i<=100)
}
.
11.08.2020 11.08.2020
C语言程序设计
循环条件
sum=0+1 sum=1+2=3 sum=3+3=6 sum=6+4 …… sum=4950+100=5050 循环终值
循环体
C语言程序设计
例 从键盘输入一组数据,以0结束输入,求数据和
#include <stdio.h>
void main()
i++; } }
. 11.08.2020 11.08.2020
运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100

C语言程序设计PPT课件第6章 循环控制结构

C语言程序设计PPT课件第6章 循环控制结构
2018/12/11 33/63
猜数游戏用到的库函数
每次运行程序时计算机所“想”的数都是一样的, 这是什么原因呢? – 函数rand()产生的只是伪随机数 随机函数srand – 为函数rand()设置随机数种子来实现对函数rand所产

生的伪随机数的 “随机化”

通过输入随机数种子,产生[0,100]之间的随机数
循环条件第一次就为假(如 输入-1)时会怎样?
16/63
【例6.1】计算并输出1+2+3+…+n的值
条 件P
真 假 假
当 型 循 环
A
2018/12/11 Testing Condition First
17/63
【例6.1】计算并输出1+2+3+…+n的值
A

条 件P

直 到 型 循 环
2018/12/11
使用了6个不同的变量 start Input n1 Input n2 Input n3 input n4 input n5 sum ← n1+n2+n3+n4+n5
n1
n2
2
3
n3
n4 n5
sum
4
5
6
20
output sum
2018/12/11
end
4/63
6.1循环控制结构与循环语句
如何对循环进行控制呢?
第6章 循环控制结构
本章学习内容
计数控制的循环 条件控制的循环 for语句,while语句,do-while语句 continue语句,break语句 嵌套循环 结构化程序设计的基本思想 程序调试与排错

第6章 循环控制PPT课件

第6章 循环控制PPT课件
(最易理解的形式)
for(变量赋初值;循环条件;循环变量增值)语句
例:
#include <stdio.h>
void main( )
{
int i,sum=0;
/*将累加器sum初始化为0*/
for(i=1; i<=100; i++)
sum=sum+ i;
/*实现累加*/
printf(“Sum=%d\n",sum);
程序可能陷入“死循环”。
2021/4/6
4
例1:程序举例
1至100求和。
# include <stdio.h> void main( ) {int i, sum=0;
i=1; while(i<=100)
{sum=sum+i; i++; }
2021/4/6
printf(“Sum=%d”,su m);
面的表达式一开始就为假(0)时,两种循环的结果
可能是不同的。
7
例2:程序举例 1至100求和。
# include <stdio.h> void main( ) {int i, sum=0;
i=1; while(i<=100)
{sum=sum+i; i++; } printf(“%d”,sum); }
讲义与备忘
C语言程序设计
2021/4/6
测井研究中心
89733317 (O)
1
第6章 循环控制
循环结构是结构化程序三种基本结构之一, 与顺序结 构、选择结构共同作为各种复杂程序的基本单元, 是C语言学习的基本内容和重要内容之一。

C语言第6章循环结构程序设计

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”。

C语言程序设计课件第06章数组、指针与字符串.ppt

C语言程序设计课件第06章数组、指针与字符串.ppt
pa+i)就是a[i]. –a[i], *(pa+i), *(a+i), pa[i]都是等效的。 –不能写 a++,因为a是数组首地址(是常量)。
17
指针数组
指 数组的元素是指针类型 针 例:Point *pa[2];
由pa[0],pa[1]两个指针组成
*i_pointer 3i
2000
9
指针变量的初始化
指 语法形式 存储类型 数据类型 *指针名=初始地址; 例:int a , *pa=&a;
针 注意事项
➢用变量地址作为初值时,该变量必须在指针初始化 之前已说明过,且变量类型应与指针类型一致。
➢可以用一个已赋初值的指针去初始化另一个指针变 量。
组 ➢ 数组下标从零开始。 ➢ 下标必须是整形表达式。 ➢ 数组元素可以在定义时直接给出初始值列表。 ➢ 数组元素作函数参数同简单变量作函数参数。 ➢ 数组名作函数参数传递的是地址值。 ➢ 二维数组在内存中按行存放。
4
对象数组
数 声明:
类名 数组名[元素个数];
组 访问方法:
数组名[下标].成员名
与!=的关系运算。

– 指向不同数据类型的指针,以及指针与一
般整数变量之间的关系运算是无意义的。
– 指针可以和零之间进行等于或不等于的关
系运算。例如:p==0或p!=0
16
指向数组元素的指针
指 声明与赋值
例:int a[10], *pa;
针 pa=&a[0]; 或 pa=a;
通过指针引用数组元素
C++语言程序设计
第六章 数组、指针与字符串
本章主要内容
数组 指针 动态存储分配 深拷贝与浅拷贝 字符串

循环结构程序设计PPT课件

循环结构程序设计PPT课件

2020/12/29
3
6.1 问题的提出
利用前面所学的知识,同学们已经可以编程解决 以下问题
计算班级3名学生的总成绩及平均成绩 计算sum=1+2+3+4+5 如果在第1题里是一个班级30名同学的成绩呢? 如果在第2题里是计算sum=1+2+3+…+n-1+n (n=1000)呢?
2020/12/29
}
2020/12/29
19
6.4 for语句
一般形式 for([表达式1];[表达式2];[表达式3]) 语句 此处无;
for
执行流程
表达式1
表达式2
假(0)
真(非0)
语句
执行表达式1 当表达式2为真时
do 语句
while(表达式);
do
此处有;
真(非0)
语句
语句
当表达式为真时
while
表达式
假(0)
特点:先执行循环体内语句,后判断表达式
2020/12/29
15
100
例:用do~while循环求 n n 1
#include <stdio.h> int main() { int n,sum=0;
{ int i,sum=0;
{ int i,sum=0;
scanf("%d",&i);
scanf("%d",&i);
do
while(i<=10)
{ sum+=i;
{ sum+=i;
i++;
i++;
}while(i<=10);
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.5 for语句
for 语句较前两种循环语句更简洁、更灵活, 特别是处理循环次数确定的问题。
for语句的语法格式为: for(表达式1;表达式2;表达式3)
循环体语句
其中,表达式1为赋初值表达式 表达式2为条件表达式 表达式3为循环变量增值表达式
例:求n! (n=10) int main( ) { int n,k,s=1;
scanf(“%d”,&n); i=1; s=0; do { s+=i; /*累加*/
i+=2; } while(i<=n); /*必须使用分号*/ printf(“s=%d”,s); }
课堂实践
1、从键盘上输入若干整数,求其中正偶 数之和。以-1作为输入结束标志。
#include "stdio.h" int main() {
scanf("%d", &n);while (n>0)
do
{ s+=n%10;
{ s+=n%10; n/=10;
n/=10;
}
}
while(n>0); printf("\n sum=%d", s);
printf("\n sum=%redt",ursn); 0;
return 0; }
}
课堂实践3
输入一个整数,求该数是几位数,按顺 序输出它的每一位数字(以空格分隔); 按逆序输出它的每一位数字(以空格分隔 )。
例:求s=1+3+5+…n (n为奇数且n>=1)
6.4 do…while语句
do_while语句的特点是“先执行循环体,后 判断循环条件”,当条件成立时继续执行循环 体,条件不成立时结束循环。
do_while的一般形式
do 循环体语句
while(表达式);
while与do…while的不同
…… s=s+i i=i+1 输出s
流程图
开始 s=0,i=1;

i<=10

s=s+i; i=i+1;
输出s 结束
6.3 while语句
语法格式: while(表达式) 循环体语句
while语句的执行过程为: ① 计算while后条件表达式的值。 ② 若表达式的值为真,则执行循环体语句,然 后转①;否则,退出循环,即结束while语句。
while :先判断表达式的值,后执行循环体 do while :先执行循环体一次后,再判断表 达式的值
while语句中,循环体可能一次都不执行 (0~n次) do while 语句中,循环体至少执行一次(1~ n次)
例:用do…while实现求s=1+3+5+…n (n为奇数且n>=1)
#include <stdio.h> int main() { int n,i,s;
n=10; for (k=1; k<=n; k++)
s=s*k; printf("%d", s); }
for语句语法说明
表达式1 ,表达式2,表达式3均可省略,但是两个分 号不能省略;
表达式1,表达式3省略,没有缺省值 表达式2省略,缺省值为1(真) for(;;); 是死循环 很多时候,表达式1是一个逗号表达式,初始化多个
例1:求s=1+2+…+10
int main( )
{ int k,s;
s=0;
k=1;
// 给循环变量赋初值
while (k<=10) // k从1变化到10
{ s+=k;
// 累加
k++;
// k每次加1
}
printf("%d",s);
return 0;
}
while语句
循环结构的三个要素: 循环条件:循环结构中的条件表达式如while
第6章 循环控制
6.1 概述
问题的提出:求 s=1+2+…+10
算法描述

i<=10 时,循 环执行 这两条 语句
s=0,i=1
s=s+i i=i+1 ……
输出s
s=0,i=1 s=s+i i=i+1 s=s+i i=i+1 s=s+i i=i+1 s=s+i i=i+1 s=s+i i=i+1
并加入和s,直到最高位数字处理完为止。因此, 解决问题的关键是: ① 如何求得n中的每一位数字? ② n的位数事先不确定,如何控制循环次数? 具体方法是:用n%10得n的最低位,加入和s;然 后n=n/10,即n始终表示由未处理的数字组成的 自然数。重复以上过程,直至n等于0时结束。
由此得循环结构的组成要素为: 循环变量 : n 循环变量初值:用户输入 循环控制条件:n大于0 循环体 :计算n的个位并加入和s,即
for (k=1; k<=n; k++)
s=s*k;
等价于: for( k=1; k<=n; )
printf("%d", s);
{ s*=k; k++;}
}
/*表达式3省略,移至循环体内*/
下划线语句段等价于:
for(n=10,k=1; k<=n;若k+表+)达式2省略,则为死循环,除
变量,如: for (s=0,i=1;i<=100;i++) s+=i;
例:求n! (n=10) int main( ) { int n;
long s=1; n=10;
等价于:
n=10; k=1;
for( ; k<=n; k++) s*=k; /*表达式1可省略,赋初值语句上 移,但“;”不能省略。*/
(k<=100)其,k<=100就是循环条件。 循环体:在每个循环周期均要执行一次的语句序列。
如while下用{ }括起来的语句序列。 循环控制变量:能够决定控制条件是真是假的量,
如上例中的变量k。一般来说,在循环体中要有改 变循环变量的语句,使得循环条件可以为假,即循 环可以结束而不是无限循环(死循环)。
int x=0,s=0; do {
scanf("%d",&x); if(x>0 && x%2==0) s+=x; } while(x!=-1); printf("%d",s); return 0; }
课堂实践2
求自然数n中各位数字之和(n由用户输入)。 问题分析: 从n的个位开始,重复求每一位数字,
s+=n%10 循环变量增值规律 :n=n/10
int main( )
int main( ) { int s=0, n;
{ int s=0, n; printf("\n input a natural number:");
printf("\n input sacanantfu(r"a%l dnu"m, b&enr:)";);
相关文档
最新文档