为了账号安全,请及时绑定邮箱和手机立即绑定

老师,我在做c++编程时候下面这个始终无法成功构建,系统显示是第7行有问题,可我看不出问题在哪里,求解答,谢谢!

老师,我在做c++编程时候下面这个始终无法成功构建,系统显示是第7行有问题,可我看不出问题在哪里,求解答,谢谢!

C
梧落 2015-03-27 16:57:12
#include <iostream>using namespace std;int main(){    int i;    int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;    bonus1=i*100000*0.1;    bonus2=bonus1+(i-100000)*0.075;    bonus4=bonus2+(i-200000)*0.05;    bonus6=bonus4+(i-400000)*0.03;    bonus10=bonus6+(i-600000)*0.015;    if(i<=100000)    bonus=bonus1=i*100000*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;    cout<<bonus<<endl;    return 0;  }
查看完整描述

3 回答

?
onemoo

TA贡献883条经验 获得超454个赞

你把bonus都声明成了int型,当然不会输出浮点数。

将它们的类型改成double试试。

查看完整回答
反对 回复 2015-03-28
?
梧落

TA贡献1条经验 获得超0个赞

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

    int i;

    int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

    cin>>i;

    cout <<setprecision(6);

    cout <<fixed;

    bonus1=10*0.1;

    bonus2=bonus1+10*0.075;

    bonus4=bonus2+20*0.05;

    bonus6=bonus4+20*0.03;

    bonus10=bonus6+40*0.015;

    if(i<=10)

    bonus=i*0.1;

    else if (i<=20)

    bonus=bonus1+(i-10)*0.075;

    else if (i<=40)

    bonus=bonus2+(i-20)*0.05;

    else if  (i<=60)

    bonus=bonus4+(i-40)*0.03;

    else if (i<=100)

    bonus=bonus6+(i-60)*0.015;

    else

    bonus=bonus10+(i-100)*0.01;

    cout <<bonus<<endl;

    return 0;

  }

这个是我改正过的,题目给出的输入为35时输出应该为2.500000,但我在构建后运行时,得到的结果是1,这是肿么回事啊?

查看完整回答
反对 回复 2015-03-27
?
康振宁

TA贡献2条经验 获得超1个赞

你给i赋个初始值

查看完整回答
反对 回复 2015-03-27
  • 3 回答
  • 0 关注
  • 1618 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信