charmmm


私信TA

用户名:1420462013

访问量:3852

签 名:

少年心怀乌托邦,心仍向阳肆生长

等  级
排  名 755
经  验 3794
参赛次数 1
文章发表 10
年  龄 0
在职情况 学生
学  校 Bilibili
专  业

  自我简介:

TA的其他文章

解题思路:该题类似于分段函数,考虑用switch语句

注意事项:一般思路就是用case语句从0--9加上default顺次编写,但要注意题目中的利润区间,在switch语句体现出来例如case 2:同时存在于100000<i≤200000以及200000<i≤400000两个区间中,就没法处理了;这时可以用逆序从上至下累计奖金,同时还要注意利润中每一部分的奖金提成都是不同的;有一个小细节就是default放在switch语句开头用来处理利润为10^6以上的奖金。


参考代码:

#include<stdio.h>

int main()

{

    int i;

    int m = 0;

    scanf("%d",&i);

    switch(i/100000){

        //default可以放到任意位置上

        //程序进入switch语句后,顺序执行所有可执行语句,只有遇到break或}才会停止。

        default:m+=(i-1000000)*0.01;i=1000000;

        case 9:

        case 8:

        case 7:

        case 6:m+=(i-600000)*0.015;i=600000;

        case 5:

        case 4:m+=(i-400000)*0.03;i=400000;

        case 3:

        case 2:m+=(i-200000)*0.05;i=200000;

        case 1:m+=(i-100000)*0.075;i=100000;

        case 0:m+=i*0.1;

    }

    printf("%d",m);

    return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »