| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1001 人关注过本帖
标题:[求助]新手研究c100例
只看楼主 加入收藏
企鹅
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-7-14
收藏
 问题点数:0 回复次数:3 
[求助]新手研究c100例

在百度下了个c100,做到第2题就出现问题.
【程序2】
题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      
2.程序源代码:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
 if(i<=100000)
  bonus=i*0.1;
 else if(i<=200000)
     bonus=bonus1+(i-100000)*0.075;
    else if(i<=400000)
        bonus=bonus2+(i-200000)*0.05;
       else if(i<=600000)
           bonus=bonus4+(i-400000)*0.03;
          else if(i<=1000000)
              bonus=bonus6+(i-600000)*0.015;
             else
              bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
怀疑答案错了,请问大家有c100的调试数据么.

搜索更多相关主题的帖子: 百度 利润 奖金 
2007-02-02 13:41
企鹅
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-7-14
收藏
得分:0 

经过我修改我认为应该是这样的
#include <stdio.h>
void main()
{
long int i;
long int a1,a2,a4,a6,a10,a;
scanf("%ld",&i);
a1=100000*0.1;a2=a1+100000*0.075;
a4=a2+200000*0.05;
a6=a4+200000*0.03;
a10=a6+400000*0.015;
if(i<=100000)
a=i*0.1;
else if(i<=200000)
a=a1+(i-100000)*0.075;
else if(i<=400000)
a=a2+(i-200000)*0.05;
else if(i<=600000)
a=a4+(i-400000)*0.03;
else if(i<=1000000)
a=a6+(i-600000)*0.015;
else
a=a10+(i-100000)*0.01;
printf("bonus=%ld\n",a);
}
但是发现一个奇怪的现象,输入600000的时候结果是33499正确的结果应该是33500为什么会少1呢,我看了好久发现不了????????????????????????????
我自己编的就可以出33500
#include <stdio.h>
void main()
{
long int i,k,j;
printf("please input profit:\n");
scanf("%ld",&i);
j=i/100000;
if(j>=10) j=10;
switch(j)
{
case 0:k=i*0.1;break;
case 1:k=10000+(i-100000)*0.075;break;
case 2:
case 3:k=17500+(i-200000)*0.05;break;
case 4:
case 5:k=27500+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9:k=33500+(i-600000)*0.015;break;
case 10:k=39500+(i-1000000)*0.01;break;
}
printf("the profit is :%ld\n",k);
}



2007-02-02 14:30
企鹅
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-7-14
收藏
得分:0 
?没有人可以告诉我么?
2007-02-02 19:43
teasb
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-8-3
收藏
得分:0 
#include <stdio.h>
void main()
{
   long int i;
   long int a1,a2,a4,a6,a10,a;
   printf("plese input your salary:");
   scanf("%ld",&i);
   a1=100000*0.1;a2=a1+100000*0.075;
   a4=a2+200000*0.05;
   a6=a4+200000*0.03;
   a10=a6+400000*0.015;
   if(i<=100000)
   a=i*0.1;
   else if(i<=200000)
   a=a1+(i-100000)*0.075;
   else if(i<=400000)
   a=a2+(i-200000)*0.05;
   else if(i<=600000)
   a=a4+(i-400000)*0.03;
   else if(i<=1000000)
   a=a6+(i-600000)*0.015;
   else
   a=a10+(i-100000)*0.01;
   printf("bonus=%ld\n",a);
}
这是我稍微修改了下,输入600000,结果是33500,楼上你是用什么编译软件的,是不是你编译软件的问题
2008-08-03 02:22
快速回复:[求助]新手研究c100例
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039323 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved