计算执行时C程式当机

时间:2019-05-15 17:03:18

标签: c

我有这个程序,可以根据员工的薪水计算员工奖金。当n === 999时,程序终止。但是我的问题是,当我计算奖金时,无论是打印“调试1”还是“调试2”。 并且程序崩溃而没有任何错误。

这是我用C语言编写的第一个程序。我熟悉Java,在这里我不知道自己在做什么错。我正在使用Code :: blocks在C中进行编程。

有人可以指出错误吗?

#include <stdio.h>

int main(void)
{
    int n;
    float basic;
    float bonus;

    for(;;)
    {
        printf("Enter the Emp No = ");
        scanf("%d",&n);

        if(n==999)
        {
            break;
        }
        else
        {
            printf("Enter Employee Salary\n");
            scanf("%f",&basic);
            printf("Basic Salary is %f",basic);

            if(basic < 100000)
            {
                printf("Debug 1");
                bonus = 0.75 * basic;
            }
            else
            {
                printf("Debug 2");
                bonus = 0.5 * basic;
            }
            printf("Employee %s Bonus is %.2f",n,bonus);
        }

        basic = 0.0f;
        bonus = 0.0f;
    }

    return 0;
}

谢谢。

1 个答案:

答案 0 :(得分:4)

最后一条printf语句将n打印为%s(字符串)。 n是整数,不应打印为字符串。

printf("Employee %s Bonus is %.2f",n,bonus);

应为:

printf("Employee %d Bonus is %.2f",n,bonus);