鱼C论坛

 找回密码
 立即注册
查看: 4326|回复: 9

Switch语句的应用题!

[复制链接]
发表于 2012-10-17 21:39:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
就是C语言100个算法经典例题里面的第二题:
/*       题目:企业发放的奖金根据利润提成。
         利润(I)低于或等于10万元时,奖金可提10%;
         利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;
         20万到40万之间时,高于20万元的部分,可提成5%;
         40万到60万之间时高于40万元的部分,可提成3%;
         60万到100万之间时,高于60万元的部分,可提成1.5%,
         高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
*/


#include<stdio.h>

void main()
{
        unsigned long I;
        int i;
        unsigned long static1,static2,static4,static6,static10,reward;

        static1=100000*0.1;
        static2=static1+100000*0.075;
                  static4=static2+200000*0.005;
                  static6=static4+200000*0.003;
        static10=static6+400000*0.0015;
       
        scanf("%u",&I);
        i=I/100000;
        switch(i)
        {
        case 0: reward=I*0.1; printf("%u\n",reward);break;
        case 1: reward=static1+(I-100000)*0.075;printf("%u\n",reward);break;
        case 2:
        case 3: reward=static2+(I-200000)*0.05;printf("%u\n",reward);break;
        case 4:
    case 5: reward=static4+(I-400000)*0.03;printf("%u\n",reward);break;
    case 6:
    case 7:
    case 8:
    case 9: reward=static6+(I-600000)*0.015;printf("%u\n",reward);break;
    default:reward=static10+(I-1000000)*0.01;printf("%u\n",reward);break;
        }
}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-17 21:44:45 | 显示全部楼层
我自己用笔计算了下,小于40万的时候答案正确,超过40万答案就不对了啊,实在找不到哪里错了:'(
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-17 22:40:10 | 显示全部楼层
  1. #include<stdio.h>

  2. void main()
  3. {
  4.         unsigned long I;
  5.         int i;
  6.         unsigned long static1,static2,static4,static6,static10,reward;

  7.         static1=100000*0.1;
  8.         static2=static1+100000*0.075;
  9.                   static4=static2+200000*0.005;//此处0.005改为0.05;
  10.                   static6=static4+200000*0.003;//0.003改为0.03;
  11.         static10=static6+400000*0.0015;//0.0015改为0.015
  12.         //希望能对你有帮助,要细心啊,加油!
  13.         scanf("%u",&I);
  14.         i=I/100000;
  15.         switch(i)
  16.         {
  17.         case 0: reward=I*0.1; printf("%u\n",reward);break;
  18.         case 1: reward=static1+(I-100000)*0.075;printf("%u\n",reward);break;
  19.         case 2:
  20.         case 3: reward=static2+(I-200000)*0.05;printf("%u\n",reward);break;
  21.         case 4:
  22.     case 5: reward=static4+(I-400000)*0.03;printf("%u\n",reward);break;
  23.     case 6:
  24.     case 7:
  25.     case 8:
  26.     case 9: reward=static6+(I-600000)*0.015;printf("%u\n",reward);break;
  27.     default:reward=static10+(I-1000000)*0.01;printf("%u\n",reward);break;
  28.         }
  29. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-18 07:32:10 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-18 07:33:11 | 显示全部楼层
光顾着盯着下面的公式看,我2了:(
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-18 08:47:09 | 显示全部楼层
一起学习吧。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-18 12:36:08 | 显示全部楼层
画个圈圈叉死你 发表于 2012-10-18 07:32
啊,一早起来看到了你的回复,谢谢你啊!
我改了下面的忘了上面的,太粗心了~

不用客气啦,嘿嘿!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-19 23:14:10 | 显示全部楼层
呵呵,好像我们的课程是一样的,你是什么专业啊?
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-20 07:52:39 | 显示全部楼层
渴望飞翔的鱼 发表于 2012-10-19 23:14
呵呵,好像我们的课程是一样的,你是什么专业啊?

你居然跟踪我
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-20 10:03:21 | 显示全部楼层
画个圈圈叉死你 发表于 2012-10-20 07:52
你居然跟踪我

木有啊,我只是在看贴的时候偶然看到的:D
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-11 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表