我有这个程序,可以根据员工的薪水计算员工奖金。当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;
}
谢谢。
答案 0 :(得分:4)
最后一条printf
语句将n
打印为%s
(字符串)。 n
是整数,不应打印为字符串。
printf("Employee %s Bonus is %.2f",n,bonus);
应为:
printf("Employee %d Bonus is %.2f",n,bonus);