如果a数据类型用double不能正确显示结果,如果用float则无问题
编译器VS2022
#include<stdio.h>
int main(void)
{
double a;
printf("Enter a floating-point value:");
scanf_s("%f", &a);
printf("\n fixed-point notation: %f", a);
printf("\n exponential notation: %e", a);
printf("\np notation: %a", a);
return 0;
}
如图为数据类型设为double时结果
如图为数据类型为float时的结果
scanf_s("%f", &a)
改成
scanf_s("%lf", &a)
double是双精度类型要用 %lf 输入 不能用 %f 输入 , 输出时用%f和%lf都可以
#include<stdio.h>
int main(void)
{
double a;
printf("Enter a floating-point value:");
scanf_s("%lf", &a); // %f 改成 %lf
printf("\n fixed-point notation: %lf", a); // %f 改成 %lf
printf("\n exponential notation: %le", a); // %e 改成 %le
printf("\np notation: %a", a);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!