lo在jio下 2021-09-12 08:40 采纳率: 100%
浏览 29
已结题

以下两段代码有什么区别?


#include<stdio.h>
int main ()
{
    float i,x;
    
    printf("请输入当月利润:");
    scanf("%f",&i);
    
    if(i<=100000)
        x=0.1*i;
    else if(100000<i<=200000)
        x=10000+(i-100000)*0.075;
    else if(200000<i<=400000)
        x=17500+(i-200000)*0.05;
    else if(400000<i<=600000)
        x=27500+(i-400000)*0.03;
    else if(600000<i<=1000000)
        x=33500+(i-600000)*0.015;
    else if(1000000<i)
        x=39500+(i-1000000)*0.01;
        
    printf("本月的奖金数是:%.4f元\n",x);
    
    return 0;
    
 } 

以上c程序运行后结果如下:
请输入当月利润:2000000
本月的奖金数是:152500.0000元


Process exited after 4.94 seconds with return value 0
请按任意键继续. . .

#include<stdio.h>
int main ()
{
    float i,x;
    
    printf("请输入当月利润:");
    scanf("%f",&i);
    
    if(i<=100000)
        x=0.1*i;
    else if(i<=200000)
        x=10000+(i-100000)*0.075;
    else if(i<=400000)
        x=17500+(i-200000)*0.05;
    else if(i<=600000)
        x=27500+(i-400000)*0.03;
    else if(i<=1000000)
        x=33500+(i-600000)*0.015;
    else 
        x=39500+(i-1000000)*0.01;
        
    printf("本月的奖金数是:%.4f元\n",x);
    
    return 0;
    
 } 

修改成这样之后就变成下边这样:
请输入当月利润:2000000
本月的奖金数是:49500.0000元


Process exited after 2.004 seconds with return value 0
请按任意键继续. . .

我觉得程序修改后没有很大的区别,但是为什么输出不一样呢?(第一个应该是错误输出,第二个正确)

  • 写回答

2条回答 默认 最新

  • 关注

    第一个这么改下就行了:判断i时不能连续判断应该用&&表示且的条件,最后记得加else的情况

    
    #include <stdio.h>
    
    int main()
    {
        int i,j;
        printf("请输入当月利润:");
        scanf("%d",&i);
        if(i <= 100000)
            j = i * 0.1;
        else if( i > 100000 && i <= 200000 )
            j = 100000 * 0.1 + ( i - 100000 ) * 0.075;
        else if( i > 200000 && i <= 400000 )
            j = 17500 + (i - 200000) * 0.05;
        else if( i > 400000 && i <= 600000 )
            j = 27500 + (i - 400000) * 0.03;
        else if( i > 600000 && i <= 1000000)
            j = 33500 + (i - 600000) * 0.015;
        else
            j = 39500+ (i - 1000000) * 0.01;
        printf("应得的奖金是:%d\n",j);
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 9月12日

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题