第四章选择结构习题..ppt
文本预览下载声明
P113第5题 方法一:先画N-S图 程序如下: main() { int a,b,c; print(“请输入三个整数:”); scanf(“%d,%d,%d”,a,b,c); if(ab) if(bc) printf(“max=%d\n”,c); else printf(“max=%d\n”,b); else if(ac) printf(“max=%d\n”,c); else printf(“max=%d\n”,a); } 方法二:使用条件表达式,先画N-S图 程序如下: main() { int a,b,c,temp,max; print(“请输入三个整数:”); scanf(“%d,%d,%d”,a,b,c); temp=(ab)?a:b; max=(tempc)?temp:c; printf(“3个整数中的最大数是%d\n”,max);} 8题:先画N-S图,程序如下: main() { float score; char grade; printf(“请输入学生成绩:”); scanf(“%f”,score); while(score100|| score0) {printf(“\n输入数据有误,请重输!”); scanf(“%f”,score);} switch((int)(score/10)) {case 10: case 9:grade=‘a’;break; case 8:grade=‘b’;break; case 7:grade=‘c’;break; case 6:grade=‘d’;break; case 5: case 4: case 3: case 2: case 1: case 0:grade=‘e’;break; } printf(“成绩是%f,相应的等级是%c\n”,score,grade); } 9题:程序如下: main() {long int num; int indiv,ten,hundred,thousand,ten_thousand,place; printf(“请输入一个整数(0~99999):”); scanf(“%ld”,num); if(num9999) place=5; else if(num999) place=4; else if(num99) place=3; else if(num9) place=2; else place=1; printf(“place=%d\n”,place); printf(“每位数字为:”); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000- thousand*1000)/100; ten =(int)(num-ten_thousand*10000- thousand*1000-hundred*100)/10; indiv= (int)(num-ten_thousand*10000- thousand*1000-hundred*100-ten*10; 10题:程序如下: 解题思路:此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万至20万时,奖金应由两部分组成:①利润为10万元时应得的奖金,即100000*0.1;②10万元以上部分应得的奖金,即(num-100000)*0.075。 假如利润为15万元,其中有10万元按10%的提成,另外5万元则按7.5%提成。 同理,20万-40万这个区间的奖金也应由两个部分组成: ①利润为20万元时应得的奖金,即10万*0.1+10万* 0.075 ;②20万元以上部分应得的奖金,即(num-200000)*0.5。 程序设计时先把10万,20万,40万,60万,100万各关键点的奖金计算出来,即bon1,bon2,bon4,bon6,bon10;然后再加上各区间附加部分的奖金。 用if语句实现: main( ) {long i; float bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*
显示全部