标题:一个简单c程序的探讨
取消只看楼主
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
 问题点数:0 回复次数:5 
一个简单c程序的探讨
企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
下面是我编的,请问有没有其他的方法(注:if  else 的变换不算)
#include<stdio.h>
#include<stdlib.h>
void main()
{
 long int i;
 int   x1,x2,x4,x6,x10,x;
 printf("请输入一个数(这里用80万测试):\n");
 scanf("%d",&i);
 x1=100000*0.1;
 x2=x1+100000*0.075;
 x4=x2+200000*0.05;
 x6=x4+200000*0.03;
 x10=x6+400000*0.015;
 if(i<=100000)
  x=i*0.1;
 else if(i<=200000)
  x=x1+(i-100000)*0.075;
 else if(i<=400000)
     x=x2+(i-200000)*0.05;
 else if(i<=600000)
  x=x4+(i-400000)*0.03;
 else if(i<=1000000)
  x=x6+(i-600000)*0.015;
 else x=x10+(i-1000000)*0.01;
 printf("计算的结果为:\n%d\n",x);
 system("pause");
}
还有个问题就是 :
这个程序是有警告的,把int 改成double 就没有了,可是输入数据之后,显示的是0
不改呢 ,警告是不妨碍运行的 所以说是int 声明的话,结果就是对的
可不可以用别大方法,让其一举两得呢
搜索更多相关主题的帖子: 利润 奖金 探讨 include 
2007-11-30 09:14
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
得分:0 
警告的问题解决
#include<stdio.h>
#include<stdlib.h>
void main()
{
    long int i;
    int   x1,x2,x4,x6,x10,x;
    printf("请输入一个数(这里用80万测试):\n");
    scanf("%d",&i);
    x1=(int)(100000*0.1);
    x2=(int)(x1+100000*0.075);
    x4=(int)(x2+200000*0.05);
    x6=(int)(x4+200000*0.03);
    x10=(int)(x6+400000*0.015);
    if(i<=100000)
        x=(int)(i*0.1);
    else if(i<=200000)
        x=(int)(x1+(i-100000)*0.075);
    else if(i<=400000)
        x=(int)(x2+(i-200000)*0.05);
    else if(i<=600000)
        x=(int)(x4+(i-400000)*0.03);
    else if(i<=1000000)
        x=(int)(x6+(i-600000)*0.015);
    else x=(int)(x10+(i-1000000)*0.01);
    printf("计算的结果为:\n%d\n",x);
    system("pause");


}

2007-11-30 12:02
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
得分:0 
还有没有别的方法

2007-11-30 12:03
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
得分:0 
用vc6.0 很不错 可以编c还可以遍c++

2007-11-30 20:41
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
得分:0 
4楼的 我把你的程序复制下来 为何有错啊
下面是没错的
#include<stdio.h>
void main()
{
    int i,branch;
    int bonus,bon1,bon2,bon4,bon6,bon10;
    bon1=100000*0.1;
    bon2=bon1+100000*0.075;
    bon4=bon2+200000*0.05;
    bon6=bon4+200000*0.03;
    bon10=bon6+400000*0.01;
    printf("请输入利润i:");
    scanf("%d",&i);
    branch=i/100000;
    if(i>1000000)
        branch=10;
    switch(branch){
    case 0:bonus=i*0.1;break;
    case 1:bonus=bon1+(i-100000)*0.075;break;
    case 2:
    case 3:bonus=bon2+(i-200000)*0.05;break;
    case 4:
    case 5:bonus=bon4+(i-200000)*0.03;break;
    case 6:
    case 7:
    case 8:
    case 9:bonus=bon6+(i-400000)*0.015;break;
    case 10:bonus=bon10+(i-1000000)*0.01;
}
printf("%d",bonus);
getch();
}

2007-11-30 20:43
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
得分:0 
回复 7# 的帖子
结果用 还是有waring

2007-11-30 20:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-189445-1-1.html




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

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