版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 2 分析分析:输入三角形的三边,用下述公式计算三角形的面积:输入三角形的三边,用下述公式计算三角形的面积: #include #include int main() float a , b , c , s , area; printf(please enter 3 sides of a triangle:n); scanf(%f,%f,%f, s = (a + b + c)/2; area = sqrt(s * (s - a) * ( s - b) * (s - c); printf(a=%7.2f,b=%7.2f,c=%7.2fn,a,b,c); printf(area=%7.2fn,ar
2、ea); return 0; 【引例引例】 输入三角形的三边长,求三角形的面积。输入三角形的三边长,求三角形的面积。 c)-b)(s-a)(s-s(s 其中:其中:s=1/2(a+b+c) 3 用选择结构用选择结构if语句实现:语句实现: #include #include int main() float a , b , c , s , area; printf(please enter 3 sides of a triangle:n); scanf(%f,%f,%f, if (a+bc) area = sqrt(s * (s - a) * ( s - b) * (s - c); print
3、f(a=%7.2f,b=%7.2f,c=%7.2fn,a,b,c); printf(area=%7.2fn,area); else printf(数据错误数据错误); return 0; 4 选择结构需要解决的两个问题选择结构需要解决的两个问题 l控制选择结构执行的控制选择结构执行的条件条件表示表示 一般用一般用关系表达式关系表达式,逻辑表达式逻辑表达式来描述条件来描述条件 l控制选择控制选择结构结构描述描述 实现选择结构的语句实现选择结构的语句 if语句语句 switch语句语句 5 l关系表达式概念关系表达式概念 用关系运算符将两个表达式(可以用关系运算符将两个表达式(可以 是算术表达式、
4、关系表达式、赋值表达是算术表达式、关系表达式、赋值表达 式或逻辑表达式式或逻辑表达式)连接起来的式子,称为连接起来的式子,称为 关系表达式。关系表达式。 v关系运算符和关系表达式关系运算符和关系表达式 6 关系运算符关系运算符 : 小于小于 : 大于大于 =: 大于等于大于等于 =: 等于等于 !=: 不等于不等于 优先级相同(高)优先级相同(高) 优先级相同(低)优先级相同(低) 7 关系表达式关系表达式 l关系表达式的值是一个逻辑值关系表达式的值是一个逻辑值 a c+d d = a b f = a b c /* “”是左结合是左结合 */ 8 | (逻辑或逻辑或) printf(%d ,0
5、 x20); printf(%dn,0 x k=(n=ba)|(m=ab) c=a,a=b,b=c ; b) if(ab) c=a,a=b,b=c; c) if(ab) c=a;a=b;b=c; d) if( ab) c=a;a=b;b=c; c a) a=1,b=2,c=3 b) a=1,b=2,c=3 c) a=2,b=3,c=3 d) a=1,b=2,c=3 20 #include #include int main()int main() int a,b,max; int a,b,max; printf(n please input two numbers:); printf(n pl
6、ease input two numbers:); scanf(%d%d, scanf(%d%d, max=a; max=a; ifif (maxb) max=b; (maxb) max=b; printf(max=%d,max); printf(max=%d,max); return 0;return 0; 例:例: 求两个整数中较大的数求两个整数中较大的数 21 例:输入例:输入3个数个数a,b,c, 要求按由小到大的顺序要求按由小到大的顺序 输出输出 #include int main() float a,b,c,t; scanf(%f,%f,%f, if(ab) t=a;a=b;b=t
7、; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%5.2f,%5.2f,%5. 2f,a,b,c); return 0; 22 if-else 形式结构形式结构 if (表达式表达式) 语句语句1; else 语句语句2; 23 if-else形式的执行流程形式的执行流程 表达式的值?表达式的值? 语句语句1 真(真(1) 假(假(0) 语句语句2 24 例例:求两个数中较大的数求两个数中较大的数 #include #include int main()int main() int a, b int a, b,max;max; printf(
8、printf(“please input two numbers: );please input two numbers: ); scanf(%d%d, scanf(%d%d, if(ab)if(ab) max=a; max=a; elseelse max=b; max=b; printf(max=%dn,max); printf(max=%dn,max); return 0;return 0; 25 例:一元二次方程的实数解例:一元二次方程的实数解 #include #include int main( ) double a = 0.0, b = 0.0, c = 0.0, x1, x2,
9、y; printf(请输入请输入a、b、c: ); scanf(%lf %lf %lf, y = b * b - 4.0 * a * c; if (y b?(bc?1:0):0功功 能相同的是能相同的是 a) if( (ab) b) if( (ab)|(bc) k=1; else k=0; else k=0 c) if(ab) k=1; else if(bc) k=1; else k=0; a 28 练练 习习 设设a=1,b=2,c=3,d=4 则条件表达式则条件表达式 (a b) ? a : (c d) ? c : d的值是?的值是? 说明说明: 条件运算符是条件运算符是“自右至左自右至左
10、”结合的:结合的: (a b) ? a : (c d) ? c : d; = (a b) ? a : (c d) ? c : d); 4 29 #include #include int main() int main() int a,b,max; int a,b,max; scanf( scanf(%d,%d%d,%d, max=ab?a:b;max=ab?a:b; printf( printf(max= %dnmax= %dn,max);,max); return 0; return 0; 例例:输入两个整数输出其中最大数输入两个整数输出其中最大数 30 编程编程: :输入三个整数,输出其
11、中最大数输入三个整数,输出其中最大数 #include int main() int a,b,c,t,max; printf(请输入请输入a,b,c:); scanf(%d,%d,%d, t=(ab)?a:b; max=(tc)?t:c; printf(%d,%d,%d中最大数是中最大数是%d,a,b,c,max); return 0; 31 练习:输入一个字符,判别它是否为大写字母,如果练习:输入一个字符,判别它是否为大写字母,如果 是,将它转换成小写字母;如果不是,不转是,将它转换成小写字母;如果不是,不转 换。然后输出最后得到的字符。换。然后输出最后得到的字符。 #include int
12、 main() char ch; scanf(%c, ch=(ch=a printf(%c,ch); return 0; 32 else-if形式结构形式结构 if (表达式表达式1) 语句语句1; else if (表达式表达式2) 语句语句2; else 语句语句n; 33 else-if形式的执行流程形式的执行流程 表达式表达式1 语句块语句块1 表达式表达式2 语句块语句块2 表达式表达式n 语句块语句块n 语句块语句块n+1 多分支结构执行过程多分支结构执行过程 1 0 0 1 1 0 34 例例 : 有一函数有一函数 -1 (x0) 编写程序,输入一个编写程序,输入一个x值,值,
13、输出对应的输出对应的y值。值。 练练 习习 35 #include int main() int x,y; printf(n请输入一个整数:请输入一个整数:); scanf(%d, if (x0) y=-1; else if (x=0) y=0; else y=1; printf(x=%d,y=%dn,x,y); return 0; 程序:程序: 36 练练 习习 有一函数:有一函数:y= x (x1) 2x-1 (1=x=10) 写一程序写一程序,输入输入x,输出输出y值值 37 ifif语句的嵌套语句的嵌套 在一个在一个if语句中又包含了另语句中又包含了另 一个一个if语句,称为语句,称为
14、if语句的语句的 嵌套。嵌套。 一般形式为:一般形式为: if ( ) if ( ) 语句语句1; else 语句语句2; else if ( ) 语句语句3; else 语句语句4; c语言规定语言规定, , else总是和它总是和它 上面离它最近上面离它最近 的的if配对。配对。 选择选择结构程序设计结构程序设计 38 使用使用if语句的嵌套解例题:语句的嵌套解例题: 程序程序1 1程序程序2 2 if (x=0) if (x0) y=-1; else y=0; else y=1; if (x0) y=-1; else if (x=0) y=0; else y=1; 39 if语句的嵌套语
15、句的嵌套 if (x y) if (x z) x = 1; else x = 2; l上述语句什么含义?上述语句什么含义? l规则:规则:else总是与它前面最近的总是与它前面最近的if配对。配对。 40 练习:写出下列程序运行结果练习:写出下列程序运行结果 #include int main() int a=2,b= -1,c=2; if(ab) if(b0)c=0; else c+; printf(%dn,c); return 0; 2 41 练习:写出下列程序运行结果练习:写出下列程序运行结果 #include int main() int a=1,b=2,c=3,d=0; if(a=1
16、 else printf(%d,%d,%dn,a,b,c); else printf(%d,%d,%dn,a,b,c); return 0; 1,3,3 42 if(ab) if(cd) x=1; else if(ac) if(bd) x=2; else x=3; else x=6; else x=7; 练习练习:当当a=1,b=3,c=5和和d=4时时,执行下面的程序执行下面的程序 段后段后,x的值为的值为? 2 43 #include int main() int x=100,a=10,b=20,ok1=5,ok2=0; if(ab) if(b!=15) if(!ok1) x=1; els
17、e if(ok2) x=10; x=-1; printf(%dn,x); return 0; 练习练习:写结果写结果 -1 44 练练 习习 #include int main() int a=1,b=3,c=5; if(c=a+b) printf(yesn); else printf(non); return 0; yes 45 练练 习习 #include int main() int x=10,y=20,t=0; if(x=y) t=x;x=y;y=t; printf(%d,%dn,x,y); return 0; 20,0 46 多分支选择语句多分支选择语句switch 的引进的引进 1
18、、findnum 2、diamond 3、goodbye 请编写一个菜单程序,使用数字请编写一个菜单程序,使用数字13 来选择菜单项,其他输入则不起作用。来选择菜单项,其他输入则不起作用。 47 程序:程序: #include int main() int a; printf(1、findnumn); printf(2、diamondn); printf(3、goodbyen); printf(input 1-3: n); scanf(%d, switch(a) case 1: printf(findnumn); break; case 2: printf(diamondn); break;
19、case 3: printf(goodbye!n); break; return 0; 48 用循环改进该程序:用循环改进该程序: #include int main() int a; char s=y; while(s=y) printf(1、findnumn); printf(2、diamondn); printf(3、goodbyen); printf(input 1-3: n); scanf(%d, switch(a) case 1: printf(findnumn); break; case 2: printf(diamondn); break; case 3: printf(goo
20、dbye!n); break; printf(还要继续吗还要继续吗(y/n):); scanf( %c, if(s=y) continue; else break; return 0; 49 switchswitch语句语句 选择选择结构程序设计结构程序设计 switch语句语句是实现多分支是实现多分支 选择结构的另一个语句。选择结构的另一个语句。 switch (表达式表达式) case 常量表达式常量表达式1:语句:语句1;break; case 常量表达式常量表达式n:语句:语句n;break; default :语句:语句n+1; switch语句的语句的 基本格式基本格式 50 sw
21、itch用法举例 #include int main() char grade; printf(请输入等级成绩请输入等级成绩: ); scanf(%c, switch (grade) case a: printf(85100n);break; case b: printf(7084n);break; case c: printf(6069n);break; case d: printf(60n);break; default: printf(errorn); return 0; 51 将百分制成绩转换等级制将百分制成绩转换等级制 #include int main() int a,grade;
22、 printf(请输入百分制成绩:请输入百分制成绩: ); scanf(%d, a=(int)(grade/10); printf(转换成等级制成转换成等级制成 绩绩:); switch (a) case 10: case 9: printf(an);break; case 8: printf(bn);break; case 7: printf(cn);break; case 6: printf(dn);break; default: printf(en); return 0; 52 练习:写出下列程序运行结果练习:写出下列程序运行结果 #include int main() int x=1,
23、a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; printf(a=%d,b=%dn,a,b); return 0; a=2,b=1 53 练练 习习 #include int main() int c=1,d; switch(c) case 0:d=0;break; case 1: case 2:d=1; case 3: case 4:d=2;break; default:d=3; printf(d=%d,d); return 0; d=2 54 练习练习 #include int main() int a=15,b=21,m=0;
24、 switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default:m+; case 0:m+;break; printf(m=%d,m); return 0; m=1 55 例例: 将将1 1至至7 7中的任意一个数字转化成对应的英文中的任意一个数字转化成对应的英文 星期几的前三个字母,如星期几的前三个字母,如1 1转化为转化为mon,7mon,7转化为转化为 sunsun等。等。 #include #include int main()int main() int a; int a; printf(input integer numbe
25、r: ); printf(input integer number: ); scanf(%d, scanf(%d, switchswitch (a) (a) / /* *对表达式对表达式a a做多次判断,根据不同的条件做不同的语句做多次判断,根据不同的条件做不同的语句* */ / case 1:printf(monn);break;/ case 1:printf(monn);break;/* *breakbreak的作用是跳出该结构的作用是跳出该结构* */ / case 2:printf(tuen); break; case 2:printf(tuen); break; case 3:pri
26、ntf(wedn); break; case 3:printf(wedn); break; case 4:printf(thun); break; case 4:printf(thun); break; case 5:printf(frin); break; case 5:printf(frin); break; case 6:printf(satn); break; case 6:printf(satn); break; case 7:printf(sunn); break; case 7:printf(sunn); break; default:printf(errorn);/ defau
27、lt:printf(errorn);/* *输入的不是输入的不是1 1至至7 7的整数时执行的整数时执行* */ / return 0;return 0; 56 程序设计举例程序设计举例 例:运输公司对用户计算运费,路程例:运输公司对用户计算运费,路程(s)越越 远,每公里运费越低。标准如下:远,每公里运费越低。标准如下: s 250km 没有折扣没有折扣 250 s 500 2%折扣折扣 500 s 1000 5折扣折扣 1000 s 2000 8折扣折扣 2000 s 3000 10折扣折扣 3000 s 15折扣折扣 总运费:总运费:f = p*w*s*(1-d) 其中:其中:p为基本运费,为基本运费,w为货物重量,为货物重量,s为距离,为距离,d 为折扣。为折扣。 57 方法方法1:使用:使用if #include int main() int s; double p=0.0, w=0.0, d=0.0, f=0.0; scanf(%lf %lf %d, if (s 250) d = 0.0; else if (s 500) d = 0.02; else if (s 1000)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年购销合同:某钢铁企业向供应商订购0万吨原材料2篇
- 二零二五年度高铁站房PC构件预制及吊装工程合同2篇
- 二零二五年度物业管理顾问合同(含交通枢纽管理)2篇
- 二零二五版货车司机意外伤害赔偿合同范本3篇
- 二零二五年度绿色环保型二手房按揭交易合同模板3篇
- 二零二五食堂承包合同(大路食堂运营管理)3篇
- 二零二五版二手房买卖与家具选购代理合同3篇
- 税务局2025年度企业社会责任报告编制合同
- 二零二五年度智慧社区家居安装合同规范3篇
- 二零二五年度虫草科研合作与技术转移合同范本3篇
- 居家养老护理人员培训方案
- 江苏省无锡市2024年中考语文试卷【附答案】
- 管理者的九大财务思维
- 四年级上册数学应用题练习100题附答案
- 2024年度中国电建集团北京勘测设计研究院限公司校园招聘高频难、易错点500题模拟试题附带答案详解
- 有关企业会计人员个人工作总结
- 人教版高中数学必修二《第十章 概率》单元同步练习及答案
- 干部人事档案专项审核工作情况报告(8篇)
- 智慧校园信息化建设项目组织人员安排方案
- 多旋翼无人机驾驶员执照(CAAC)备考试题库大全-下部分
- 2024年青海一级健康管理师高频核心题库300题(含答案详解)
评论
0/150
提交评论