爱问知识人 爱问教育 医院库

一个简单c语言程序输出的问题

首页

一个简单c语言程序输出的问题


        

提交回答
好评回答
  • 2018-03-27 12:38:28
      #include"stdio。h"main() { long  i; float 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=%。2f\n",bonus); } 验证过了,输出没错输入120000,输出11500。

    A***

    2018-03-27 12:38:28

其他答案

    2018-03-27 05:38:28
  • 程序运算的时候结果都会进行取整的,你的bonus?等变量都用的整型,每次运算都要取整,结果就可能会有误差。建议把他们都定义为float型,输出时用printf("bonus=%d",(int)bonus); 这样问题基本就解决了。如果还有问题,那就是你用的数的数值都过大,float型已经不能满足了,换为double后问题肯定可以解决的。

    z***

    2018-03-27 05:38:28

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):