【发布时间】:2012-07-23 22:27:13
【问题描述】:
我尝试编写一个简单的 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 函数显示的值非常奇怪 - 与我输入的完全不同。
我用我想到的所有可能的方式搜索了它,但我似乎无法找到它发生的原因。
有人可以尝试找出它发生的原因吗?
【问题讨论】:
-
阅读
scanf格式字符串的文档。它们不同于printf。你想要“%lf”。 -
真的有必要否决我的问题吗?它有什么问题?
-
我没有投反对票(我也不打算投反对票),但我猜原因是您可以通过查看手册页来回答这个问题。这并没有显示出太多的研究努力。
-
我的反对票是由于已经引用的原因,没有接受有用的答案,以及标题中的一个重要错字,我不想修复,因为它似乎只是粗心大意发帖者的角色。