C语言 选择分支结构程序设计35页PPT

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

if 语句
例 if(x>y) max=x; else max=y; printf(”max=%d”,max);
2.if/else
语句形式: if (表达式) 语句1
else
语句2
执行流程: 如果表达式值非0,执行语句1;
否则,执行语句2; 无论执行了哪一路分支之后,都执行if的下一条语句。
#include<stdio.h>
m{ ain(例) .判断给定的某一年是否是闰年。
int year,leap=0;
分析pr:int如f("果\n请某输年入能年被份4(整y除yy而y)不:"能); 被100整除, sc或an者f(能"%被d"4,&0y0e整ar除); ,那么该年就是闰年,
/*否判断则该就年是是平否年是。闰年*/
if(year%4==0&&year%100!=0||year%400==0)
逻辑运算符与逻辑表达式
在C语言中有三个逻辑运算符
&& 逻辑与 两个操作对象同时为真时,表达式的值为真。 || 逻辑或 两个操作对象之一为真时,表达式的值为真。 ! 逻辑非 当操作对象的值为真,则表达式的值为假。
Biblioteka Baidu
说明:
(1)&&和||是双目运算符,!是单目运算符
(2)&&和||的运算级别低于关系运算符,
例: int i=3,j=5; i*i+j*j>100;
运算对象为字符数据时,比较按其ASCII码进行。 例:‘a’>‘b’
(3)关系表达式的值可以作为整数值参与运算 例:int a=3,b=2,c=1,f; f=a>b>c;
(4)与数学表达式的区别
例:3<x<100 (5)注意区分“=”与“==”的差别
gueifs(sg=ureasnsd=()=;data) /*以上p面rin得t到f("的猜种对子了产!生~_0~~3,27正67确的数整数字*为/ %d !\n", data); 2)e1l~se5之间的随机数: 首先p用rirnatnf(d"(猜)函错数了产!0生_0的,随正机确数数,字然为后%对d5!求\n余", data); (} rand()%5),产生0~4之间的整数,然后再加1,
任何非0的数值(“真”);但运算后的结果和
关系运算的结果一样,只能是逻辑值0和1。
(5) 在逻辑表达式的求解中,并不是所有的逻辑运
算符都被执行,只有在必须执行下一个逻辑运 算符才能求出表达式的解时,才执行该运算符。
例: int x=-1; 执行了++x||++x||++x 后,x的值是?
x=1
if 语句
#include <stdio.h>
#include <stdlib.h>
#inclu分de析<:tim如e.何h>产生1~5之间的随机数?
main()
1{)i随nt机da数ta产, g生u:ess; C语s言ra提nd供((usrnasnigdn()e函d数)tim,e配(N合UrLaLn)d);()函数可产生介于 0~3d2a7ta6=7之ran间d的()%随5机+1数; (函数均包含在stdlib.h中)。 srapnrdin((tuf(n"s请ig输ne入d要)ti猜m的e(N数U字LL(限));1-5 ):"); /*以s做c随an机f(数"%产d生"器, &的g种u子es,s)t;ime()函数包含在time.h中 */
!的运算级别高于关系运算符和算术运算符,
注意: !的结合方向是从右向左。
&&和||的结合方向是从左向右,
(3)不能确定的情况下,添加括号保证运算次序。
尽量避免复杂烦琐的逻辑表达式。
例:a=10;b=20;c=30;
a=1 b=19
a=(--b<=a)||(a+b!=c);
a=? b=?
(4)参加逻辑运算的运算对象可以是0(“假”)或
选择结构
根据给定的条件是否满足, 决定从给定的条件选择其一。
分为: 二路分支 if …else…语句 多路分支 switch语句
关系运算符和关系表达式
关系运算符
> 大于 < 小于 = = 等于
>= 大于等于 <= 小于等于 ! = 不等于
说明:
(1) 六个关系运算符都是双目运算符;
(2) 由一个关系运算符连接两个对象形成的 表达式称为关系表达式,这两个运算对 象可以是算术表达式、字符表达式等。
if(yealre%ap4==1=; 0&&year%100!=0||year%400==0)
if(leap)
/*leap=1,即该年是闰年*/
printf("%d年是闰年.\n",year);
else
/*leap=0,即该年是平年*/
printf("%d年是平年.\n",year);
}
例.制作简单的猜数字游戏。程序运行时 自动产生1~5之间的随机数,接着等待 键盘输入猜的数字。如果猜对了,显示 “猜对了”相关信息;否则,如果猜错了, 则显示“猜错了”相关信息。
1.简单的if语句 形式:
例: main() { int a,b,max; printf(”\n 请输入两个数: ”); scanf(”%d%d”,&a,&b); max=a; if (max<b) max=b; printf(”max=%d”,max); }
if (表达式) 语句
执行过程:
如果表达式值非0,执行该语句, 然后执行if的下一个语句; 否则直接执行if的下一个语句。
即rand()%5+1就产生1~5之间的整数。
main()
{ long x; int ge,shi,qian,wan;
print例f(":p一le个a5s位e 数in,pu判t断th它e是5不b是its回n文u数m,be即r1:\2n3"2);1 scanf("是%回ld文",数&,x)个; 位与万位相同,十位与千位相同。
例: 输入三个整数x、y、z, 把这三个数由小到大输出。
输入x,y,z
Y x>y N 交换x,y
Y x>z N 交换x,z
Y y>z N 交换y,z
输出x,y,x的值
#include <stdio.h> main() { int x,y,z,t;
printf(“Please input the x,y,z: ”); scanf(“%d%d%d”,&x,&y,&z); if (x>y) { t=x; x=y; y=t; } if (x>z) { t=x; x=z; z=t; } if (y>z) { t=y; y=z; z=t; } printf(“Small to big:%d%d%d\n”,x,y,z); }
相关文档
最新文档