C语言程序设计教程课件--第4章PPT格式课件下载.ppt
- 文档编号:14693024
- 上传时间:2022-10-24
- 格式:PPT
- 页数:32
- 大小:444KB
C语言程序设计教程课件--第4章PPT格式课件下载.ppt
《C语言程序设计教程课件--第4章PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程课件--第4章PPT格式课件下载.ppt(32页珍藏版)》请在冰豆网上搜索。
4双重分支语句双重分支语句ll语句一般格式语句一般格式if(表达式表达式)语句语句1else语句语句2ll功能:
计算表达式的值,如果它的值是一个非计算表达式的值,如果它的值是一个非计算表达式的值,如果它的值是一个非计算表达式的值,如果它的值是一个非00值值值值(逻辑真),就执行内嵌语句(逻辑真),就执行内嵌语句(逻辑真),就执行内嵌语句(逻辑真),就执行内嵌语句11,之后跳过内,之后跳过内,之后跳过内,之后跳过内嵌语句嵌语句嵌语句嵌语句22,执行后续语句;
否则跳过内嵌语句,执行后续语句;
否则跳过内嵌语句11,执行内嵌语句,执行内嵌语句,执行内嵌语句,执行内嵌语句22,之后执行后续语句。
,之后执行后续语句。
5双重分支语句的算法:
双重分支语句的算法:
ifif(x0)m+;
elseelsem-;
ifif(ch=a&
ch=z)ch=ch-32;
printf(%cn,ch%cn,ch);
elseelseprintf(%cn,ch%cn,ch);
表达式非表达式非0TF语句语句1语句语句2N-S结构图结构图语句语句1语句语句2流程图流程图NY表达式非表达式非0?
6多重分支语句多重分支语句ll语句一般格式语句一般格式if(表达式表达式1)语句语句1elseif(表达式表达式2)语句语句2elseif(表达式表达式m)语句语句melse语句语句nll功能:
依次计算并判断表达式依次计算并判断表达式依次计算并判断表达式依次计算并判断表达式ii,为非为非为非为非00时执行后面的时执行后面的时执行后面的时执行后面的语句,都为语句,都为语句,都为语句,都为00时,执行语句时,执行语句时,执行语句时,执行语句nn无论执行完那个语句分支,都转到后续语句无论执行完那个语句分支,都转到后续语句无论执行完那个语句分支,都转到后续语句无论执行完那个语句分支,都转到后续语句7多重分支语句的算法多重分支语句的算法ll流程图流程图表达式表达式表达式表达式2?
2?
表达式表达式表达式表达式1?
1?
语句语句语句语句nn语句语句语句语句11语句语句语句语句22语句语句语句语句mmYYNNYYNNNNYY表达式表达式表达式表达式m?
m?
8多重分支语句的算法多重分支语句的算法llN-S结构图结构图表达式表达式表达式表达式11?
TFTF表达式表达式表达式表达式22?
语句语句语句语句11TFTF语句语句语句语句22表达式表达式表达式表达式mm?
TFTF语句语句语句语句mm语句语句语句语句nnll例如:
ifif(a0)x=-1;
(a=A&
ch=A&
ch=65&
ch=Z?
ch+32:
ch);
putchar(n)114.1.2if语句的嵌套语句的嵌套ll如果如果if的内嵌语句中又使用了一个的内嵌语句中又使用了一个if语句,语句,则构成则构成if语句的嵌套。
语句的嵌套。
【例【例4.a】比较两个整数的关系。
比较两个整数的关系。
#includemain()intx,y;
printf(EnterintegerXandY:
);
scanf(%d%d,&
x,&
y);
if(x!
=y)if(xy)printf(XYn);
elseprintf(XYn);
elseprintf(X=Yn);
应该正确判断:
ifif的的的的内嵌语句内嵌语句内嵌语句内嵌语句ifif和和和和elseelse的配对的配对的配对的配对运行运行jc4_a提倡缩格书写提倡缩格书写提倡缩格书写提倡缩格书写有利于阅读程序有利于阅读程序12if语句嵌套的形式语句嵌套的形式ll简单简单if语句的嵌套形式语句的嵌套形式if(表达式表达式)if语句语句ll双重(或多重)分支双重(或多重)分支if语句的嵌套形式语句的嵌套形式if(表达式表达式)if语句语句elseif语句语句可以是各种形式的可以是各种形式的if语句语句可以是各种形式的可以是各种形式的if语句语句如果是简单如果是简单if语句,语句,必须用必须用“”括起括起13例如:
if(c=50)printf(50=c=100n);
elseprintf(c50n);
elseif(c=150)printf(100c150n);
elseprintf(cb)if(ac)if(ad)m=1;
elsem=2;
elsem=3;
问题:
哪一个问题:
哪一个else和哪一个和哪一个if相匹配相匹配?
规则:
在规则:
在嵌套的嵌套的ifelse语句语句中,中,else总是与总是与上面的离它最近的尚未配对的上面的离它最近的尚未配对的if配对。
配对。
15举例举例【例【例4.4】输入一个数,判断它是奇数还是】输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断偶数,如果是奇数则进一步判断它是否为它是否为5的倍数。
的倍数。
定义变量定义变量x输入输入x的值的值x是奇数是奇数TF输出输出“odd”x是是5的的倍倍数数输输出出“even”TF是是5的倍数的倍数16程序:
程序:
main()main()intx;
intx;
scanf(%d,&
x);
ifif(x%2!
=0x%2!
=0)printf(%disanoddn,x);
printf(%disanoddn,x);
ifif(x%5=0x%5=0)printf(%disthetimesof5n,x);
printf(%disthetimesof5n,x);
elseelseprintf(%disanevenn,x);
printf(%disanevenn,x);
运行运行jc4_4思考:
如果没有,算法和输出如何?
思考:
17学习学习if语句的难点语句的难点llifelse语句的配对语句的配对ll正确用表达式描述条件正确用表达式描述条件例如:
当例如:
当x大于大于5小于小于10时令时令x自增自增if(5x10)x+;
ll正确判断内嵌语句正确判断内嵌语句例如:
if(x5&
x0d0时,方程有时,方程有时,方程有时,方程有两个不相等的实根两个不相等的实根两个不相等的实根两个不相等的实根:
x1=(x1=(-b+sqrt(d)/(2*a)b+sqrt(d)/(2*a)x2=(x2=(-b-sqrt(d)/(2*a)b-sqrt(d)/(2*a)当当当当d0d0d0计算重根计算重根计算重根计算重根TFTF输出重根输出重根输出重根输出重根计算实根计算实根计算实根计算实根计算虚根计算虚根计算虚根计算虚根输出实根输出实根输出实根输出实根输出虚根输出虚根输出虚根输出虚根27程序:
#includemath.hmain()floata,b,c,d,x1,x2,lp,ip;
scanf(%f%f%f,&
a,&
b,&
c);
printf(theequation);
if(fabs(a)1e-6)printf(isnotquadratic);
elsed=b*b-4*a*c;
if(fabs(d)1e-6)/*/*不相等的实根不相等的实根不相等的实根不相等的实根*/*/x1=(-b+sqrt(d)/(2*a);
x2=(-b-sqrt(d)/(2*a);
printf(hastworealroots:
n);
printf(x1=%8.4f,x2=%8.4fn,x1,x2);
else/*/*虚根虚根虚根虚根*/*/lp=-b/(2*a);
ip=sqrt(-d)/(2*a);
printf(hastwocomplexroots:
printf(x1=%8.4f+%8.4fin,lp,ip);
printf(x2=%8.4f-%8.4fin,lp,ip);
运行运行jc4_629举例(续):
举例(续):
【例【例4.b】输入年份,判别该年是否为闰年。
输入年份,判别该年是否为闰年。
思路:
年份年份年份年份yearyear为闰年的条件为为闰年的条件为为闰年的条件为为闰年的条件为能够被能够被能够被能够被44整除,但不能被整除,但不能被整除,但不能被整除,但不能被100100整除的年份;
整除的年份;
能够被能够被能够被能够被400400整除的年份。
整除的年份。
只要满足任意一个就可以确定它是闰年。
19961996年、年、年、年、20002000年是闰年年是闰年年是闰年年是闰年19981998年、年、年、年、19001900年不是闰年年不是闰年年不是闰年年不是闰年设定标志变量设定标志变量leapleap,只要符合其中一个条件的就是只要符合其中一个条件的就是闰年,令闰年,令leap=1leap=1;
否则令否则令leap=0leap=030算法:
算法:
定义变量定义变量year、leap输入年份输入年份year能被能被能被能被44整除且整除且整除且整除且不能被不能被不能被不能被100100整除?
整除?
TF能被能被能被能被400400整除?
leap=1TFleap=1leap=0leap=1?
TF是闰年是闰年不是闰年不是闰年year%400=0year%400=0year%4=0&
year%4=0&
year%100!
=0year%100!
=031程序:
main()intyear,leap;
year);
if(year%4=0&
=0)leap=1;
elseif(year%400=0)leap=1;
elseleap=0;
if(leap=1)printf(%disaleapyearn,year);
else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 课件