第4章 C语言教学课件程序的控制结构
C语言程序设计教程课件:程序控制结构
程序控制结构
程序控制结构
因为case后面的常量表达式不能写成一个表示范围的逻 辑表达式,因此可以将switch表达式设为(int)x/1000,结果 正好是一个整数;当x在3000≤x<5000范围内时,表达式 (int)x/1000的值可能为3,也可能为4,这时两个case子句可 以共用同一个语句组。
3.1.2 空语句 空语句是一个只由分号组成的语句。其形式为: ; 空语句什么都不做,当程序中某个位置在语法上需要一
条语句,但在语义上又不要求执行任何操作时,可在此处使 用一条空语句。空语句常用于循环语句中的循环体,表示循 环体什么都不做。如:
for(i=1;i<=1000;i++); /*表示循环空转1000次,可用来 延时*/
程序控制结构
图3-9 for语句流程图
程序控制结构
【例3-12】 求n!,即计算1*2*3*…*n的值。 分析:求多个数累积与累加和的算法思想类似,只是要 注意存放累积数的变量初值应该为1。
程序控制结构
程序控制结构
【例3-13】 输出所有的水仙花数。水仙花数是指一个 三位数,其各位数字的立方和等于该数本身,如153是一个 水仙花数,153=13+53+33。
for(表达式1;表达式2;表达式3) 循环体语句
程序控制结构
for语句的执行流程是: (1) 先计算“表达式1”的值。 (2) 再计算“表达式2”的值,并判断其是否为真,若为 真(非0),则执行循环体语句;若为假(0),则跳出循环,执 行for语句的后续语句。 (3) 循环体语句执行后,计算“表达式3”的值,然后转 到步骤(2)重复执行。 其流程图如图3-9所示。
C语言 第四讲 程序的控制结构
有以下程序 #include "stdio.h" main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++;break; case 3: a++; b++; } printf("a=%d,b=%d\n",a,b); } 程序的运行结果是______。 A、a=1,b=0 B、a=2,b=2 C、a=1,b=1
else y=1.5*20;
printf(" \n行李重量为%f }
26
收费:%f " ,x,y);
3.多分支——if的一种扩展形式 if (表达式1) 语句 1; else if(表达式2) 语句 2; else if(表达式3) 语句 3; …… else if(表达式m) 语句 m; else 语句 n ;
– 只有一个出口;
– 无死语句,即不存在永远都执行不到的语句; – 无死循环,即不存在永远都执行不完的循环。
采用“自顶向下、逐步求精”和模块化的方 法进行结构化程序设计
9
§4.2 程序结构(1): 顺序结构
顺序结构的特点是按照语句出现的先后 顺序执行程序,如c语言中的输入输出 操作和赋值操作。
#include <stdio.h> main() { int score,x; printf("输入成绩="); scanf("%d",&score); x=score/10; switch (x) { case 10: case 9: printf("成绩为A");break; case 7: case 8: printf("成绩为B");break; case 6: printf("成绩为C");break; default:printf("成绩为D"); } }
第4章 程序控制结构
N P
B
Y A B
N
(出口) 出口)
一、if语句 if语句
语句是用来判断所给定的条件是否满足, if 语句是用来判断所给定的条件是否满足, 根据判定的结果(真或假) 根据判定的结果(真或假)决定执行给定的 某种操作之一。 某种操作之一。 if语句的三种形式 if语句的三种形式
单分支选择if语句 单分支选择if语句 if 双分支选择if语句 双分支选择if语句 if 多分支选择if语句 多分支选择if语句 if
1、单分支选择if语句 单分支选择if语句 if
语句形式: 语句形式: if(表达式) 语句; if(表达式) 语句; 表达式 语句执行流程: 语句执行流程:
表达式取值非0 即条件满足, 表达式取值非0,即条件满足, 则执行语句后继续向下执行。 则执行语句后继续向下执行。 P
入口 N
Y
A
判断条件: 判断条件:
a=2.8a=6.0 main() b=6.0b=2.8 {float a,b,t; scanf(“%f,%f”,&a,&b); a=2.8 if(a>b) a>b值为0,,即满足条件 a>b值为 1 即不满足条件 a>b值为 值为0 值为1 a>b值为 b=6.0 {t=a; a=b; b=t;} /*复合语句,交换a、b*/ /*复合语句 交换a 复合语句, printf("%.1f,%.1f\n",a,b); }
y= 1 (x>0) 0 (x=0) -1 (x<0)
*/
在内嵌if语句中要注意配对关系 在内嵌if语句中要注意配对关系 if
main ( ) y= { int x,y; scanf("%d",&x); y=y=-1; 错误! 错误! if (x!=0) x!=0成立且x>0成立 成立且x>0成立, if (x>0) y=1; /* x!=0成立且x>0成立,即x>0 */ else y=0; /* x!=0成立且x>0 不成立,即x<0 */ x!=0成立且 成立且x>0 不成立, printf("x=%d,y=%d\ printf("x=%d,y=%d\n",x,y); }
第4章 C语言程序的基本控制结构
#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B
真
表达 式
假
条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)
C语言程序控制结构ppt课件
精选版课件ppt
55
4.1.3复合语句
用 { }括起来的一组语句。如:
一般形式:
(1) #include <stdio.h>
void main ( ) { int a,b;
scanf("%d",&a); b=1; if(a==5)
b=a+3; b=6; printf("%d\n",b); }
(2) #include <stdio.h> void main ( ) {int a,b,t;
}
运行结果:
Input a number(100~999):263
输出: 3,6,2
精选版课件ppt
1212
例4.3 取一个16位的二进制数a的7、6、5、4四个位, 如图4-2中加阴影的部分。
void main() { unsigned a,b,c,d;
scanf("%x",&a); /*以十六进制形式输入整数a*/ b=a>>4; c=~(~0<<4); d=b&c; printf("%x\n%x\n",a,d); /*以十六进制输出a和结果d*/ }
aver=sum/2.0;
/*求平均值*/
printf("sum=%.0f, aver=%.2f\n", sum,
aver);
}
运行情况:
30000,5005
C语言 第4章 程序的控制结构
printf("Input a, b:"); scanf("%d,%d", &a, &b);
} if (a > b) max = a; else
max = b;
max = a > b ? a : b;
printf("max = %d", max);
语句2;
break;
…… default :
语句n; break; }
必须是常量!!
它是如何执 行的呢?
必须有空格!!
30/81
5.8用于多路选择的switch语句
Example: switch (month) {
假设 month = 1
case 1:
printf("January\n");
break;
第4章 程序的控制结构
本章学习内容
算法的描述方法 – 常用算法(累加累乘、统计、递推迭代、穷举) 选择结构及相关控制语句 循环结构及相关控制语句 结构化程序设计的基本思想 Skill: – Map problem to solution in flowchart and pseudocode
forms
else max = b;
printf("max = %d\n", max);
End
Turn Flowchart to C Program
22/81
【例5.2】计算两整数的最大值
#include <stdio.h> main() {
int a, b, max;
printf("Input a, b:"); scanf("%d,%d", &a, &b);
C语言教程第4章程序的控制结构.ppt
图
printf("please enter year,capital:");
编
scanf("%d%lf",&n,&capital);
程
deposit=capital*pow(1+rate,n);
printf("deposit=%lf\n",deposit);
}
2020/4/12
14
C语言大学实用教程
画 出
输入n和captial
流
程
depoist=captial*(1+rate)n
图
输出depoist
结束
2020/4/12
13
C语言大学实用教程 #include <math.h>
()
#include <stdio.h>
3
main()
根{
据
int n;
流
double rate=0.0225;
程
double capital,deposit;
C语言大学实用教程
简单分支选择(单分支)结构
条件成立否 no yes 语句A
条件表达式
Hale Waihona Puke .T..F.语句
格式:
2020/4/12
if (表达式) 语句/语句组;
20
C语言大学实用教程
双分支选择结构
条件表达式
.T.
.F.
语句1
语句2
格式: If (表达式) 语句1/语句组1; else 语句2/语句组2;
2020/4/12
4
C语言大学实用教程
算法的描述方法
第4章程序的控制结构.ppt
图
输出depoist
结束
2020/2/7
16
C语言大学实用教程 #include <math.h>
()
#include <stdio.h>
3
main()
根{
据
int n;
流
double rate=0.0225;
程
double capital,deposit;
图
printf("please enter year,capital:");
【例】
{
int a, b, max; 表达式1 ? 表达式2 : 表达式3
printf("Input a, b:"); scanf("%d,%d", &a, &b);
} if (a > b) max = a; else
max = b;
max = a > b ? a : b;
printf("max = %d", max);
编
scanf("%d%lf",&n,&capital);
程
deposit=capital*pow(1+rate,n);
printf("deposit=%lf\n",deposit);
}
2020/2/7
17
C语言大学实用教程
简单的C程序结构框架
以#开始的编译预处理命令
main()
{ 局部变量说明语句;
2020/2/7
34
C语言大学实用教程
使用 if 语句需注意事项
(1)条件判断表达式一定用圆括号括起。 (2)复合语句必须用{}引起。 (3)每一个else必须与一个if项匹配。 (4)else总是与离它最近的if 相匹配。
程序的控制结构培训教材经典课件(PPT48页)
random库解析
• 对random库的引用方法与math库一样,可采用下面两种方式实现 import random 或 from random import *
• 使用random库的一些例子如下,请读者注意,这些语句每次执行 后的结果不一定一样:
random库解析
random库解析
• 生成随机数之前可以通过seed()函数指定随机数种子,随机种子一 般是一个整数,只要种子相同,每次生成的随机数序列也相同。这种 情况便于测试和同步数据,例如:
遍历循环: for语句
• Python通过保留字for实现“遍历循环”,基本使用方法如下: for <循环变量> in <遍历结构>: <语句块>
• 之所以称为“遍历循环”,是因为for语句的循环执行次数是根据遍 历结构中元素个数确定的。遍历循环可以理解为从遍历结构中逐一提 取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。
输入:抛点数 处理:计算每个点到圆心的距离,统计在圆内点的数量 输出:π值
π的计算
π的计算
• 上述代码中,random()函数随机返回一个在[0,1)之间的浮点数, 用两个随机数给出随机抛点(x,y)的坐标。sqrt()函数来自于数学库 math,用来求解输入数据的平方根。第一次调用clock()函数启动一 个新的计时器,第二次调动clock()函数返回启动计时器后的时间。
• 程序执行后的效果如下:
• 如果通过while实现一个计数循环,需要在循环之前对计数器idx进 行初始化,并在每次循环中对计数器idx进行累加,如上述代码第4行 。相比for循环,循环变量逐一取自遍历结构,不需要程序维护计数 器
循环保留字: break和continue
第4章程序的控制结构PPT课件
{
语句;
表达式3;
}
22
注意
在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循
环体)
while (i < 100); i++;
for (i = 0; i < 100; i++); printf("%d", i);
for通常ቤተ መጻሕፍቲ ባይዱ一个循环变量控制循环的次数,不 要在循环体内改变这个变量
else部分可以没有。 if (表达式) 语句1; 语句3
当表达式值为0时,直接执行语句3
if-else嵌套使用时,注意else和谁配对的问 15
else-if
if的一种扩展形式
if (表达式) 语句1;
else if (表达式) 语句2;
else if (表达式) 语句3;
…………
else
}
20
while
while (表达式) { 语句; }
只要表达式的值为非0,就重复执行语句, 直到表达式值为0时止
21
fforor(表达式1; 表达式2; 表达式3)
{ 语句;
} 首先执行表达式1。如果表达式2的值为非0,
就重复执行语句和表达式3,直到表达式2的值 为0时止
相当于: 表达式1; while (表达式2)
用3种方法编程:
算法1:用不带else子句的if语句编程
17
switch
多路选择 switch (表达式)
{ case 常数1: 语句序列1; case 常数2: 语句序列2; ………… default: 语句序列3;
}
default可以没有,但最好不省略
c语言第4章程序的控制结构-3PPT课件
}while ((guess!=magic) && (counter<10));
printf("counter = %d\n", counter);
printf("Do you want to continue(Y/N or y/n)?");
scanf(" %c", &reply);
20}2w1h/2i/1l1 e ((reply == 'Y') || (reply == 'y'));
for (n=1; n<=m; n++) {
printf("%4d", m * n); } printf("\n"); } } 2021/2/11
12 3 4 5 6 7 8 9 1 24 36 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81
第4章 程序的控制结构
1
本章学习内容
算法的描述方法 – 常用算法(累加累乘、统计、递推迭代、穷举) 选择结构及相关控制语句 循环结构及相关控制语句 结构化程序设计的基本思想
Skill: – Map problem to solution in flowchart and pseudocode
forms
7/39
流程的转移控制
break语句 和 continue语句 – 对for、while、do-while循环进行内部手术
goto语句 – 少用为妙
第4章 C语言的控制结构
第4章C语言的控制结构C语言程序是由语句组成的,每个语句代表了程序执行的操作步骤。
通常,程序中的多数操作步骤不是按顺序执行的,这就需要由程序的控制结构来控制语句的执行顺序。
C语言程序一般有三种基本结构:顺序结构、选择结构和循环结构。
顺序结构(sequential structure)是按语句排列顺序依次执行;选择结构(selection structure)是根据给定的条件,从两条或者多条路径中选择一条要执行的操作路径;循环结构(loop structure)是根据一定的条件,重复执行给定的一组操作。
由这三种基本结构或三种基本结构的复合嵌套构成的程序称为结构化程序。
结构化程序具有结构清晰、层次分明、可读性好和容易维护等特点。
4.1 算法与程序4.1.1 算法算法(algorithm),广义地讲,就是对解决某个问题的流程安排,即先做什么,后做什么。
精确地讲,算法是为解决某个问题而定义的一组确定的、有限的操作步骤。
一个算法应该具有以下特点:(1) 有穷性一个算法通过有限步骤即可实现预定的目标,并且算法的每一步都可以在合理的时间内完成。
(2) 确定性算法中每一个步骤应当是确定的,而不能是含糊的、模棱两可的。
(3) 有效性算法中的每一步都应当被执行,并得到确定的结果。
例如,设b=0,则执行a/b是不能被执行的。
(4) 有零个或多个输入。
算法可以有一个或多个输入,提供算法的操作数据,也可以没有输入。
(5) 有一个或多个输出一个算法总要产生一个或多个输出数据,表示算法操作的计算结果。
算法的分析设计一般采用自顶向下的方法,把要解决的问题分解成若干个子问题,将大目标分解成若干子目标,最终分解成计算机能处理的一系列操作步骤。
对算法的描述可以用自然语言描述、也可以用流程图描述。
从算法的角度看,程序是算法的最终实现,也可以看作是算法的一种描述形式。
程序是将算法用计算机语言表示出来,最终能在计算机上按程序所指定的操作完成对具体问题的求解工作。
C语言C程序的基本控制结构PPT课件
关于 scanf( ) 函数使用的几点说明:
1 输入数据的分隔符:空格、制表符或回车键
例如, scanf(“%d%d%d”,&i,&j,&k);
输入形式可以是: ① 3 4 5<CR> ② 3 4 5<CR> ③ 3<CR> 4<CR> 5<CR>
程序设计语言有顺序、选择、循环三种基本 的控制结构。 1.用流程图表示 (1)顺序结构
B。
表示先执行A,再执行
a A
B b
第1页/共96页
(2)选择结构 如果P条件成立,执行A,否则执行B,然后转向后面的语句。
a
a
b
b
第2页/共96页
(3)循环结构 有两种形式。
① while 结构(当型循环)
表示先判断条件表达式P,当P成立,即为 “真”,
第20页/共96页
关于格式输出的几点说明: (1)对于任何一种形式的整数都可以用 d、 i、o、u、x(或
“X”)格式输出,其中 d、 i 输出带符号十进制形式,而 u、o、x格 式输出无符号整数。
例如,
printf(“%d,%u,%o,%x\n”,-1,-1,-1,-1);
printf(“%d,%u,%o,%x\n”,65534u,65534u,65534u,65534u);
void main() {
int i=8; printf("%d\n",++i); printf("%d\n",--i); printf("%d\n",i--); printf("%d\n",i++); printf("%d\n",-i--); }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言大学实用教程课件 制作人 苏小红
22
注意
在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循环体) while (i < 100); i++; for (i = 0; i < 100; i++); printf("%d", i); for通常有一个循环变量控制循环的次数,不要在循 环体内改变这个变量
C语言大学实用教程课件 制作人 苏小红
21
for
for (表达式1; 表达式2; 表达式3) { 语句; } 首先执行表达式1。如果表达式2的值为非0,就重复 执行语句和表达式3,直到表达式2的值为0时止 相当于: 表达式1; while (表达式2) { 语句; 表达式3; } 表达式1和表达式3可以没有或者是用逗号分隔的多个 表达式的组合。但最好不要有太多的表达式组合 2013-6-27
while (表达式) { 语句; } for (表达式1; 表达式2; 表达式3) { 语句; }
2013-6-27
C语言大学实用教程课件 制作人 苏小红
20
while
while (表达式) { 语句; } 只要表达式的值为非0,就重复执行语句,直 到表达式值为0时止
2013-6-27
2013-6-27
C语言大学实用教程课件 制作人 苏小红
29
猜数游戏用到的库函数
随机函数srand – 为函数rand()设置随机数种子来实现对函数rand所产生
的伪随机数的 “随机化”
使用计算机读取其时钟值并把该值自动设置为随机 数种子,产生[0,100]之间的随机数 函数time()返回以秒计算的当前时间值,该值被 转换为无符号整数并用作随机数发生器的种子
33
方法2
#define CONST 1.42e8 #include <stdio.h> /*定义符号常量CONST值为1.42e8 */ main() { int n; double term = 1, sum = 1; /*累乘求积、累加求和变量赋初值*/ for (n=2; n<=64; n++) { term = term * 2; sum = sum + term; }
C语言大学实用教程课件 制作人 苏小红
2013-6-27
15
else-if
if的一种扩展形式 if (表达式) 语句1; else if (表达式) 语句2; else if (表达式) 语句3; ………… else 语句4; 语句5; else部分可以没有
16
2013-6-27
C语言大学实用教程课件 制作人 苏小红
#include
<time.h>
srand(time(NULL)); magic = rand() % 100 + 1;
2013-6-27
C语言大学实用教程课件 制作人 苏小红
30
死循环
永远不会退出的循环为死循环 – for (;;)
{} – while (1) {} – do { }while (1)
2
算法的概念
数据结构+算法=程序 算法:为解决一个具体问题而采取的确 定的有限的操作步骤,这里仅指计算机 能执行的算法 算法特性: –有穷性 –确定性 –有效性 –没有输入或有多个输入 –有一个或多个输出
C语言大学实用教程课件 制作人 苏小红
2013-6-27
3
算法的分类
数值运算算法: –解决的是求数值解的问题,例如用辗转相除
2013-6-27
C语言大学实用教程课件 制作人 苏小红
17
switch
多路选择 switch (表达式) { case 常数1: 语句序列1; case 常数2: 语句序列2; ………… default: 语句序列3; } default可以没有,但最好不省略 不要忘记break
C语言大学实用教程课件 制作人 苏小红
C语言大学实用教程课件 制作人 苏小红
2013-6-27
27
猜数游戏用到的库函数
随机函数rand() #include <stdlib.h> – RAND_MAX在stdlib.h中定义,不大于双字节整数
的最大值32767
产生[0,RAND_MAX] 之间的随机数 – magic = rand(); 产生[0,b-1] 之间的随机数 – magic = rand()%b; 产生[a,a+b-1] 之间的随机数 – magic = rand()%b + a; 现场编程完成例4.6,发现问题
2013-6-27
C语言大学实用教程课件 制作人 苏小红
23
do-while
do {
语句; }while (表达式); 首先执行语句,然后判断表达式的值。如果表 达式为0,继续向下执行,否则,再次执行语 句,再次判断表达式的值 语句会被至少执行一次
2013-6-27
C语言大学实用教程课件 制作人 苏小红
第4章 程序的控制结构
哈尔滨工业大学计算机学院 苏小红
sxh@
内容提要
算法的描述方法 基本控制结构 基本控制语句 常用算法,如累加、累乘、统计、递推、迭 代、穷举等 程序的基本版式 结构化程序设计的基本思想
2013-6-27
C语言大学实用教程课件 制作人 苏小红
2013-6-27
C语言大学实用教程课件 制作人 苏小红
8
顺序结构
A
A
B
B NS图
2013-6-27
传统流程图
C语言大学实用教程课件 制作人 苏小红
9
分支结构(选择结构)
Y
N
条 件P
如果 成绩<60 那么 条 件P
Y
通知补考
A
B
否则 A
B
告知你考试成绩
2013-6-27
C语言大学实用教程课件 制作人 苏小红
2013-6-27
18
现场编程完成计算器程序……例4.8
编程设计一个简单的计算器程序,要求根据用 户从键盘输入的表达式: 操作数1 运算符op 操作数2 然后,计算表达式的值,指定的运算符为加 (+)、减(-)、乘(*)、除(/)
2013-6-27
C语言大学实用教程课件 制作人 苏小红
19
循环——while,for
2013-6-27
C语言大学实用教程课件 制作人 苏小红
7
结构化程序设计的核心思想
采用顺序、选择和循环三种基本结构作为程序设计 的基本单元 – 只有一个入口; – 只有一个出口; – 无死语句,即不存在永远都执行不到的语句; – 无死循环,即不存在永远都执行不完的循环。 采用“自顶向下、逐步求精”和模块化的方法进行 结构化程序设计
if-else
选择结构的一种最常用形式 if (表达式) 语句1; else 语句2; 语句3 – 表达式值非0时,执行语句1,然后语句3;
表达式值为0时,执行语句2,然后语句3
else部分可以没有。 if (表达式) 语句1; 语句3 – 当表达式值为0时,直接执行语句3 if-else嵌套使用时,注意else和谁配对的问题
10
循环结构
假 假 真 假
条 件P
A
条 件P
真
A
2013-6-27
当型循环
C语言大学实用教程课件 制作人 苏小红
直到型循环
11
循环结构
假 假 真
当P为真
条 件P
A
当P为真
A
A
2013-6-27
当型循环
C语言大学实用教程课件 制作人 苏小红
12
循环结构
A
假
A
直到P为假
条 件P
真
A
直到P为假
2013-6-27
2013-6-27
C语言大学实用教程课件 制作人 苏小红
28
猜数游戏用到的库函数
随机函数srand – 为函数rand()设置随机数种子来实现对函数rand所产生
的伪随机数的 “随机化”
通过键入随机数种子,产生[0,100]之间的随机数
scanf("%u", &seed); srand(seed); magic = rand() % 100 + 1;
C语言大学实用教程课件 制作人 苏小红
5
C程序结构
C程序 源程序文件1 编译预处理命令 源程序文件2 函数1 函数首部 源程序文件3
全局变量声明
…
函数n 函数体
局部变量声明
执行语句
2013-6-27
C语言大学实用教程课件 制作人 苏小红
6
构成程序的三种基本结构
顺序结构 选择结构 循环结构 已经证明,任何程序均可只用这三种结构综合描述 只用这三种结构编制的程序,叫结构化程序 程序必须符合结构化规则
24
当循环条件第一次就为假时
假 假 真 假
条 件P
A
条 件P
真
A
2013-6-27
当型循环
C语言大学实用教程课件 制作人 苏小红
直到循环
25
选择三种循环的一般原则
如果循环次数已知,用for 如果循环次数未知,用while 如果循环体至少要执行一次,用do-while 这只是“一般”原则,不是“原则”