我正坐在电脑前,但是我不知道我的错误在哪里。这是我在C中的代码:
#include <stdio.h>
#include <math.h>
double f (double x);
int main ()
{
double x;
printf("Please type in a decimal number: ");
scanf("&lf", &x);
printf("%", f(x));
return 0;
}
double f (double x)
{
return (fabs(x) * sin(x) * 10e-2);
}
我多次阅读了代码,但我要么太愚蠢,要么就是找不到错误。请帮我。如果您能帮助我,我将非常高兴。
希望你们对我有一个想法或建议(即使那样会有所帮助)。
答案 0 :(得分:2)
更改此:
scanf("&lf", &x);
对此:
scanf("%lf", &x);
这:
printf("%", f(x));
对此:
printf("%lf", f(x));
通过使用-Wall
标志进行编译以启用大量警告,而不是坐在计算机前,请寻求编译器的帮助。然后,您发布的代码应该已经给了您
prog.c: In function 'main':
prog.c:11:11: warning: too many arguments for format [-Wformat-extra-args]
11 | scanf("&lf", &x);
| ^~~~~
prog.c:13:13: warning: spurious trailing '%' in format [-Wformat=]
13 | printf("%", f(x));
| ^
prog.c:13:12: warning: too many arguments for format [-Wformat-extra-args]
13 | printf("%", f(x));
| ^~~
本可以帮助您查明问题并开始搜索互联网,直到Reading in double values with scanf in c出现为止。
PS:我假设您使用的是GCC编译器。如果没有,请确保启用编译器的编译警告。