chapter04选择结构程序设计.ppt_第1页
chapter04选择结构程序设计.ppt_第2页
chapter04选择结构程序设计.ppt_第3页
chapter04选择结构程序设计.ppt_第4页
chapter04选择结构程序设计.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

选择结构程序设计 1 主要内容 nif语句 nswitch语句和break语句 2 if 语句 if语句的三种形式: n实现单分支选择结构的形式 n实现双分支选择结构的形式 n实现多分支选择的形式 3 if语句之单分支选择结构 n一般形式: if(表达式)语句 n说明:当表达式的结果 为非0时,执行后面的 语句,否则不执行。 n注意:若“语句”部分 只能有一条C语句;若 由多条C语句组成,则 应加上,构成一个复 合语句。 单分支选择结构流程图 表达式 真 假 语句 NS流程图 4 #include void main() float a,b,c,t; scanf (“%f%f%f“, if (a b) t = a; a = b; b = t; /*a、b间的较小值存入a*/ if (a c) t = a; a = c; c = t; /*a、c间的较小值存入a*/ if (b c) t = b; b = c; c = t; printf(“%5.2f,%5.2f,%5.2fn“,a, b, c); 将输入的三个数按照从小到大的顺序输出 5 if语句之双分支选择结构 n一般形式: if(表达式) 语句1 else 语句2 n说明: 当表达式的值为非 0时,执行语句1, 否则执行语句2。 表达式 语句1 语句2 0 =0 双分支选择结构流程图 表达式 真 假 语句1 语句2 NS流程图 6 显示输出从终端输入的两个整数中绝对值较大的 #include void main() int x1, y1, x2, y2; scanf (“%d,%d“, if (x1 y2) printf (“%dn“, x1); else printf (“%dn“, y1); 运行情况: 23,34 34 7 所谓“水仙花数”是指一个三位数 ,其各位数字立方和等于该数本 身。如153是一个水仙花数(153 = 13 + 53 + 33)。要求:输入一 个三位整数,判断该数是否是“水 仙花数”。 8 #include void main () int k, a, b, c; printf (“请输入一个三位整数:”); scanf (“%d”, a = k / 100 % 10; b = k / 10 % 10; c = k % 10; if (k = a*a*a + b*b*b + c*c*c) printf (“%d是水仙花数。n”, k); else printf (“%d不是水仙花数。n”, k); 9 if语句 之多分支选择结构 n一般形式: if(表达式)语句1 else if(表达式)语句2 else if(表达式)语句3 else if(表达式)语句n else 语句n+1 n说明:各个表达式按顺序求值,如果某个表达 式的值为非0,则执行与其相关的那条语句, 并由此结束整个if语句。 10 多分支选择结构流程图 11 判断输入的字符是数字、大写字母、小写字母或其他字符。 #include void main() char c; printf (“Enter a character:“); c = getchar(); if (c = 0 scanf(“%f,%f,%f“, printf(“The equation “); if(fabs(a)0) /* d 0 */ x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(“has distinct real roots:%8.4f and %8.4fn“,x1,x2); /* d 0 */ else /* d void main() int year, leap; scanf (“%d“, if (year % 4 = 0) /* 被4整除 */ if (year % 100 = 0) /* 被100整除 */ if (year % 400 = 0) /* 被400整除 */ leap = 1; else /* 被400整除 */ leap = 0; else /* 被100整除 */ leap = 1; else /* 被4整除 */ leap = 0; if (leap) printf (“%d is “, year); else printf (“%d is not “, year); printf (“a leap year.n“); 19 -1 (x0) 值,输出y值。 算法: 算法: 输入x 输入x 若x0,则y=1 若x=0,则y=0 输出y 若x0,则y=1 输出y 20 21 #include void main () int x, y; scanf (“%d“, 程序段 printf (“x=%d, y=%dn“, x, y); 22 程序1 if (x 0) y = 1; else y = 0; 上例中的程序段有四个,请判断哪个是正确的? 程序4 y = 0; if ( x = 0) if (x 0) y = 1; else y = -1; 程序2 if (x = 0) if (x 0) y = 1; else y = 0; else y = -1; 23 条件运算符 格式: 表达式 ? 表达式 : 表达式 功能: 判断表达式1的值,如果成立就执行表 达式2,否则就执行表达式3 使用场合:若在if语句中,当被判别的表达式的 值为“真”或“假” 时,都执行一个赋值语 句且向同一个变量赋值时,可以用一个 条件运算符来处理。 24 例: if (a b) max = a; else max = b; 当ab时将a的值赋给max,当ab时将b的值赋给max, 可以看到无论ab是否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处理: ()?; 25 说明 n条件运算符的执行顺序:先求解表达式,若为 非(真),则求解表达式,此时表达式的 值就作为整个条件表达式的值;若表达式的值 为(假),则求解表达式,表达 式的值就 是整个条件表达式的值。 n条件运算符优先级高于赋值运算符 ,低于关系运 算符和算术运算符。 n条件运算符的结合方向为“自右至左”。 n“表达式2”和“表达式3”不仅可以是数值表达式, 还可以是赋值表达式或函数表达式。 n条件表达式中,表达式的类型可以与表达式 和表达式的类型不同。 26 输入一个字母,将大写字母换成小写字 母,小写字母换成大写字母,并输出。 #include void main () char ch; scanf (“%c“, ch = (ch=A grade = getchar (); switch (grade) case a: printf(“85100n“);break; case b: printf(“7084n“);break; case c: printf(“6069n“);break; case d: printf(“ void main() char grade; grade = getchar (); switch (grade)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论