c - Printf 只返回零
问题描述
我正坐在电脑前,但我不知道我的错误在哪里。所以这是我在 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);
}
我多次阅读代码,但我要么太愚蠢,要么就是找不到错误。请帮我。如果你能帮助我,我会很高兴。
希望你们对我有一个想法或提示(即使这会有所帮助)。
解决方案
改变这个:
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));
| ^~~
这将帮助您查明问题,并开始搜索互联网,直到例如,在 c 中使用 scanf 读取双精度值,就会出现!
PS:我假设你使用 GCC 编译器。如果没有,请确保启用编译器的编译警告。
推荐阅读
- html - 标题与幻灯片一起消失
- python - Python在没有开罗的情况下将SVG的文本转换为PNG
- python - 如何将 OpenCV Tracker 与 tif 图像一起使用?
- python - 如何使用张量流数据集 (TDFS) 作为张量流模型的输入?
- python - Python Tkinter ttk 条目将“show =”恢复为默认值
- c - C 是否在幕后使用互斥锁处理 STDIN?
- javascript - 在 Raspberypi 4 8gb arm64 上安装 javascript 链代码时超时
- python - 如何在声明后向 Enum 类添加属性
- node.js - jwtToken 存储问题以及如何将其与请求一起发送
- python - 在 pandas 数据帧上使用循环进行 Foursquare 调用