【发布时间】:2022-01-22 04:30:54
【问题描述】:
main()
{
double B_Sal, DR_Al,H_RA, Total_Sal;
printf("Enter Your Basic Salary ");
scanf("%f",&B_Sal);
printf("the amount entered is %f \n",B_Sal);
DR_Al=0.4*B_Sal;
H_RA=0.2* B_Sal;
Total_Sal=B_Sal+ DR_Al+ H_RA;
printf("The Total Salary Is %f",Total_Sal);
}
无论给出什么输入,它都会以负垃圾值的形式给出输出。当数据类型更改为 float 时,同样的代码可以正常工作。
【问题讨论】:
-
编译器应该警告您
scanf("%f",&B_Sal);中的格式说明符不正确,应该是%lf。如果没有,请打开完整的警告,如果仍然没有,请获得更好的编译器。float是%f,double是%lf。不要将其与printf的行为方式进行比较:它是一个有一些相似之处但实际上完全不同的函数。 -
哦,谢谢它成功了...不过我是初学者。
-
我们也一样..
scanf是给初学者使用的,但一点也不简单。