asdfgqwert 发表于 2019-9-29 11:52:29

新手c语言问题

#include<stdio.h>
int main()
{
    double i;
    double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
    printf("你的净利润是:\n");
    scanf("%lf",&i);
    bonus1=100000*0.1;
    bonus2=bonus1+100000*0.075;
    bonus4=bonus2+200000*0.05;
    bonus6=bonus4+200000*0.03;
    bonus10=bonus6+400000*0.015;
    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 if(i>1000000) {
      bonus=bonus10+(i-1000000)*0.01;
    }
    printf("提成为:bonus=%lf",bonus);

    printf("\n");
}
用vc6写了这个程序编译成功没有错误,但是运行时不显示结果

w97676659 发表于 2019-9-29 14:23:06

个人意见:没限定清楚i的范围,#include<stdio.h>
int main()
{
        double i;
        double bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
        printf("你的净利润是:\n");
        scanf("%lf", &i);
        bonus1 = 100000 * 0.1;
        bonus2 = bonus1 + 100000 * 0.075;
        bonus4 = bonus2 + 200000 * 0.05;
        bonus6 = bonus4 + 200000 * 0.03;
        bonus10 = bonus6 + 400000 * 0.015;
        if (i <= 100000) {
                bonus = i * 0.1;
        }
        else if (i >= 100000&&i <= 200000) {
                bonus = bonus1 + (i - 100000)*0.075;
        }
        else if (i >= 200000&&i <= 400000) {
                bonus = bonus2 + (i - 200000)*0.05;
        }
        else if (i >= 400000&&i <= 600000) {
                bonus = bonus4 + (i - 400000)*0.03;
        }
        else if (i >= 600000&&i <= 1000000) {
                bonus = bonus6 + (i - 600000)*0.015;
        }
        else if (i > 1000000) {
                bonus = bonus10 + (i - 1000000)*0.01;
        }
        printf("提成为:bonus=%lf", bonus);

        printf("\n");
}

Aimlesser 发表于 2019-9-29 17:24:24

vc6的问题吧 我用的DEV运行成功啊 另外 楼上的是错的 else if 里的else本身就把上一个条件排除了
页: [1]
查看完整版本: 新手c语言问题