【发布时间】:2015-03-05 15:15:14
【问题描述】:
我正在尝试在 C 中进行计算并尝试返回数学计算的结果值,但在传递给主函数时没有任何内容打印到屏幕上。我尝试了各种方法,但缺少一些东西。你能帮我更正代码吗?这将有助于我将来在将参数传递给 main 时编写更有效的代码?提前致谢!
#include <stdio.h>
#define PI 3.14159
#define REM 144.612925
static double Raden_CALC(double imp)
{
double result;
result = ((imp + imp) * PI) / REM;
return result;
}
main()
{
double number;
printf("Enter a number: ");
fflush(stdin);
scanf("%.4lf", &number);
Raden_CALC(number);
printf("\nResult: ", number);
}
【问题讨论】:
-
您忽略了返回值。该函数不会(不能)改变输入参数。
-
对Using
fflush(stdin)保持警惕。它充其量是不可移植的。此外,为确保输出及时出现,请确保输出以换行符结尾:printf("Result: %f\n", number);。 -
...因此,例如,您可以(应该)使用
fgets()和strtod(),而不是依赖这种可怕的未定义行为和唯一不那么可怕的scanf()。跨度> -
谢谢大家!我通常不会犯这个错误,但作为一个人,我总是忘记在 printf 中添加 %。再次感谢!
标签: c argument-passing