文档详情

第04章 条件结构程序设计.ppt

发布:2017-07-07约2.8万字共39页下载文档
文本预览下载声明
关系运算注意: 逻辑运算注意: 3. 条件运算符与表达式 一般形式: expr1 ? expr2 : expr3 执行过程 功能:相当于条件语句,但不能取代一般if语句 #include stdio.h void main ( ) { long profit; //所接工程的利润 float ratio; //提成比率 float salary = 500; //薪水,初始值为保底薪水500 printf (Input profit: ); //提示输入所接工程的利润 scanf (%ld, profit); //输入所接工程的利润 //计算提成比率 if (profit = 1000) ratio = 0; if (1000 profit profit = 2000) ratio = (float)0.10; if (2000 profit profit = 5000) ratio = (float)0.15; if (5000 profit profit = 10000) ratio = (float)0.20; if (10000 profit) ratio = (float)0.25; salary += profit * ratio; //计算当月薪水 printf (salary = %.2f\n, salary); //输出结果 } 运行结果: Input profit: 4000↙ salary = 1100.00 方法二:使用if语句 0.1默认为double型,不进行强制类型转换将产生警告信息! 方法三:使用switch语句 算法设计要点: 为使用switch语句,必须将利润profit与提成的关系转换成某些整数与提成的关系。分析本题可知,提成的变化点都是1000的整数倍(1000、2000、5000、……),如果将利润profit整除1000,则当: profit ≤ 1000 对应0、1 1000 < profit ≤ 2000 对应1、2 2000 < profit ≤ 5000 对应2、3、4、5 5000 < profit ≤ 10000 对应5、6、7、8、9、10 10000< profit 对应10、11、12、…… 为解决相邻两个区间的重叠问题,最简单的方法就是:利润profit先减1(最小增量),然后再整除1000即可: profit ≤ 1000 对应0 1000 < profit ≤ 2000 对应1 2000 < profit ≤ 5000 对应2、3、4 5000 < profit ≤ 10000 对应5、6、7、8、9 10000< profit 对应10、11、12、…… #include stdio.h void main ( ) { long profit; //所接工程的利润 int grade; float ratio; //提成比率 float salary = 500; //薪水,初始值为保底薪水500 printf (Input profit: ); //提示输入所接工程的利润 scanf (%ld, profit); //输入所接工程的利润 方法三:使用switch语句 //将利润-1、再整除1000,转化成switch语句中的case标号 grade = (profit - 1) / 1000; switch ( grade ) //计算提成比率 { case 0: ratio = 0; break; // profit≤1000 case 1: ratio = (float)0.10; break; // 1000<profit≤2000
显示全部
相似文档