gpt4 book ai didi

c - scanf 将 "junk"值赋给变量

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:42 30 4
gpt4 key购买 nike

我试图编写一个简单的 c 程序来处理导数,但这不是问题的重点:当我运行程序时,它要求我输入一堆浮点值,但不管我输入什么,scanf 函数总是会为变量分配“垃圾”值,代码如下:

double a, b, c, d, x, h;
printf("Please enter the coefficient of X cubed: ");
scanf("%3f", &a);
printf("\nPlease enter the coefficient of X squared: ");
scanf("%3f", &b);
printf("\nPlease enter the coefficient of X: ");
scanf("%3f", &c);
printf("\nPlease enter the free coefficient: ");
scanf("%3f", &d);
printf("\nPlease enter x: ");
scanf("%3f", &x);
printf("\nPlease enter the offset: ");
scanf("%3f", &h);

printf("%.3f %.3f %.3f %.3f %.3f %.3f", a,b,c,d,x,h);

我输入了 a、b、c、d、x 和 h 的值,但 printf 函数显示的值非常奇怪 - 与我输入的完全不同。

我用谷歌搜索了所有我能想到的方法,但我似乎找不到它发生的原因。

有人可以尝试弄清楚为什么会这样吗?

最佳答案

使用 lf 转换说明符来读取 double 值,而不是 f 转换说明符,它是 specifief 来读取 float值。 fscanffprintf 函数在这方面是不对称的。

关于c - scanf 将 "junk"值赋给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621456/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com