解题基础:



思路:



因为题目要求,需要一个输入的值和一个输出的值,因为定义a的是一个整型变量int,所以a/100000的值也是一个int型变量(整数)(注:C语言的取整不是四舍五入,是直接舍去小数),直接用switch函数可以写出运算语句(当然if也行,不过比较麻烦),t=对应区间的全部数*相应利润+(a-区间最大数)*超出相应的利润


答案:


   

#include<stdio.h>

int main(){

    int a,t;

    scanf("%d",&a);

    switch(a/100000)

{

        case 0:

            t=a*0.1;

            break;

        case 1:

            t=100000*0.1+(a-100000)*0.075;

            break;

        case 2:

        case 3:

            t=100000*0.1+100000*0.075+(a-200000)*0.05;

            break;

        case 4:

        case 5:

            t=100000*0.1+100000*0.075+200000*0.05+(a-400000)*0.03;

        case 6:

        case 7:

        case 8:

        case 9:

            t=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(a-600000)*0.015;

        default:

            t=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(a-1000000)*0.01; 

}

    printf("%d",t);

    return 0;

}

   

ps:当a/100000=2时,因为常量值后面的若干语句中没有break,则接着运行下一个常量值(case  3)后面的若干语句,直到遇到break为止

同理,后面的4,6,7,8都是一样的

程序结束return 0;不可省。

因为题目表达原因,生活中t应该为浮点型常量,保留两位小数,可是答案不给对,所以代码就以答案为准

若对switch函数还有疑问,可以对应我的上一个题解题解1008:C语言程序设计教程(第三版)课后习题5.6 (C语言描述)参照学习



作者: MrSix     发表时间:2017-06-10 15:50:57

 

0.0分

0 人评分

  评论区

  • «
  • »