第三章分支结构程序设计2.ppt
文本预览下载声明
§if语句(续) §3.4 switch语句 编程思路 一、三、五、七、八、十、十二月份的天数是31。 二月份的天数是28。 四、六、九、十一月份的天数是30。 要输出某月的天数,需要处理13个分支。 #include stdio.h main() { int month=0,day=0; printf(Input month:); scanf(%d,month); switch(month) { …… } if(day!=-1) printf(%d,%d\n,month,day); else printf(Illegal!\n); } 见后一页,如果非法月份,给day赋-1 switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 2: day=28; break; case 4: case 6: case 9: case 11: day=30; break; default: day=-1; } 3.10 求一元二次方程的根 3.11 输入一个字符,判断类型 3.12 判断奖学金的类型 3.5 程序举例 【实例3.10】求一元二次方程ax2+bx+c=0的根注意: a不能为0 编程思路 b2-4ac0 两个不同的根 b2-4ac=0 一个根 b2-4ac0 无根 #include stdio.h #include math.h main() { float a,b,c,delta,x1,x2; printf(“输入方程的3个系数a、b、c:\n”); scanf(“%f%f%f”,a,b,c); if(a==0) { printf(“这不是一元二次方程!\n”); exit(0); } delta=b*b-4*a*c; if(delta0) {…1….} else if(delta==0) {…2…..} else {…3….} } x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); printf(方程有2个不同的实根:%f,%f\n,x1,x2); exit(0); x1=-b/(2.0*a); printf(方程有2个相同的实根:%f\n,x1); exit(1); printf(方程没有实根!\n); 【实例3.11】输入一个字符,判断它是字母、数字、空格或其他字符,若是字母,则把大小写互相转换输出。 编程思路 大写字母 转换为小写字母并输出 小写字母 转换为大写并输出 数字 输出数字的值 空格 输出空格 其他字符 输出其他字符 #include stdio.h main() { char c; printf(“请输入一个字符:\n”); scanf(%c,c); if(大写字母) {…1….} else if( 小写字母) {…2….} else if(数字) {…3….} else if(空格) {…4….} else {…5….} } 1 如何判断是大写字母 如何将大写字母转换为小写字母 if(c=‘A’ c=‘Z’) { c=c+32; printf(输入的是大写字母, 其对应的小写字母为:%c\n“,c); } 2 如何判断是小写字母 如何将小写字母转换为大写字母 else if(c=‘a’ c=‘z’) { c=c-32; printf(“输入的是小写字母, 其对应的大写字母为:%c\n”,c); } 3 如何判断是数字 else if(c=‘0’ c=‘9’) printf(输入的是数字,其值为:%c\n,c); 4 如何判断是空格 else if(c==‘ ’) printf(输入的是空格!\n); 5 其他字符的处理 else printf(输入的是其他字符,其值为:%c\n,c); 【实例3.12】从键盘输入学生的3门课程成绩,判断该学生是否获得奖学金,一般奖学金分为3个等级,假设平均分大于90为一等奖学金,平均分大于85分为二等奖学金,平均分大于80为三等奖学金。
显示全部