通过scanf()获取输入后将垃圾值作为输出的双精度数据类型 [英] Double data type giving garbage value as output after taking input through scanf()
本文介绍了通过scanf()获取输入后将垃圾值作为输出的双精度数据类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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
",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);
}
无论给定什么输入,它都只是输出为负垃圾值。当数据类型更改为浮点时,此代码运行正常。
推荐答案
若要获得双精度输入,说明符为%lf,
#include <stdio.h>
#include<string.h>
int main()
{
double B_Sal, DR_Al,H_RA, Total_Sal;
printf("Enter Your Basic Salary ");
scanf("%lf",&B_Sal);
printf("the amount entered is %f
",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);
}
这篇关于通过scanf()获取输入后将垃圾值作为输出的双精度数据类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文