如何在程序中获得正确的输出?

时间:2016-01-27 13:50:30

标签: c

#include <stdio.h>
long double main ()
{
long double sal,tax;
printf ("Enter the salary");
scanf ("%ld",&sal);
if (sal>=1000000)
    tax=sal*0.3;    
else if (sal<1000000&&sal>=500000)
    tax=sal*0.2;   
else if (sal<500000&&sal>=200000)
    tax=sal*0.1;
else
    tax=0;

printf ("The tax is %ld",tax);
return 0;
}

该程序的预期输出是显示税,但每当程序执行时,它会将税的值作为任何工资值的0。我已经尝试将数据类型更改为int,void,long,double,float,long double,但仍然无法获得所需的输出。

1 个答案:

答案 0 :(得分:2)

您的程序行为未定义

"%Lf"long double的正确格式说明符。

此外,main 的返回类型应为int。其他任何东西都是实现定义。在您真正知道自己在做什么之前,请使用int