| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1636 人关注过本帖
标题:向各位大虾求助,本人刚学C语言
只看楼主 加入收藏
hwf214685147
Rank: 2
等 级:论坛游民
帖 子:70
专家分:94
注 册:2011-9-14
收藏
得分:0 
回复 楼主 癫狂
这个问题错的太离谱了,计算机报100多处错误都是少的。楼主先看书再做题行不?
2011-09-21 12:00
癫狂
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-9-20
收藏
得分:0 
回复 13楼 gino86
我倒是想说这是全局变量申明  但我也不知道这样写行不行
2011-09-21 13:28
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
以下是引用A13433758072在2011-9-20 21:59:48的发言:

看看答案吧 题目:企业发放的奖金根据利润提成。利润(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;                                                /*这里定义了一个变量“i”,也就是利润*/               
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;             /*这里是定义了6个变量“bonus1”等等,这里的变量代表的是各个条件下的“奖金”*/
scanf("%ld",&i);                                           /*输入“利润”*/
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;               /*这里把代表“奖金”的变量赋值,“bonus1”相当于“利润”等于10万元时的“奖金”有多少,也就是10万*0.1。*/
bonus4=bonus2+200000*0.5;                                  /*这里的意思同上,“bonus2=bonus1+10万*0.75”的意思是:当利润等于20万元时,奖金就是10万元的奖金加上20万减10万元的奖金*/
bonus6=bonus4+200000*0.3;                                  /*意思跟奖金是20万时的意思一样,因为“bonus4”代表的是10万利润时的奖金加上20万减10万所得的奖金再加上剩余20万所得的奖金*/
bonus10=bonus6+400000*0.15;                                /*看了这么多解释原理很简单,代入进去看下就知道这里的意思了*/
  if(i<=100000)                                           /*现在开始判断输入的利润满足哪个条件了,如果利润小于10万,*/
   bonus=i*0.1;                                          /*那么奖金就是“利润”*0.1,其实这里的小数点算错了,10万的奖金是10%,应该是乘以0.01的。上边也一样,都是小数点错了*/
  else if(i<=200000)                                      /*不满足上边的条件就判断“利润”是否小于20万*/
      bonus=bonus1+(i-100000)*0.075;                  /*奖金是10万元时的奖金加上利润减去10万元后乘以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);                                  /*最后输出应得的奖金*/
}
我也是个菜鸟,才学C语言不久,看到你出的问题我也感觉有点摸不着思路,不过看到别人贴出来的程序后分析
却能明白他的意思,我也学到了不少东西。
2011-09-22 00:54
a5952036
Rank: 2
等 级:论坛游民
帖 子:65
专家分:94
注 册:2011-9-7
收藏
得分:0 
以下是引用A13433758072在2011-9-20 21:59:48的发言:

看看答案吧 题目:企业发放的奖金根据利润提成。利润(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);
}
程序运行不了  还是有很多错误额!
2011-09-22 18:16
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:3 
bonus不能定义为int型的,应该定义为long int型的,否则在利润高于40万时奖金高于3万多的时候就会出现错误
不过我在输入60万的时候才发现结果不是我想要的,本来应该是(i-400000)*0.03的,运算过后发现高于40万,它超过40万的部分去乘0.05了,
本人表示不懂了。为什么会出现这样的结果。
2011-09-23 02:29
早起de笨鸟
Rank: 1
等 级:新手上路
帖 子:25
专家分:5
注 册:2011-8-15
收藏
得分:0 
恩恩,我也是新手,C程序要从基础的开始弄懂,不然就很难修改了!
2011-09-23 22:30
快速回复:向各位大虾求助,本人刚学C语言
数据加载中...
 
   



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

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