我正在处理的程序遇到一个小问题,我一直收到警告jcenter()
所以我很确定这是format '%1f' expects type 'float *' but argument 2 has type 'double *'
格式的问题。
我已经尝试过寻找解决方案,但似乎无法找到解决方案。
此函数读入两个数字。
scanf
答案 0 :(得分:3)
scanf("%lf", n1)
使用double
;注意" l" (el,not" one")。
如果您不熟悉编程,请尝试熟悉文档,例如: cppreference。例如,在那里您可以找到scanf
的格式和长度矩阵。
享受学习编程的乐趣,使用谷歌等,并且不要犹豫,问: - )
答案 1 :(得分:2)
你输错了,然后你复制了它......
scanf("%1f", n1);
应该写
scanf("%lf", n1);
请注意l
(小写L)和1
(第一位)之间的差异。
%lf
代表long float,它不是实际的C类型,而是区分float
(%f
)和double
(%lf
的方法)。 l
可与d
和i
一起使用,为long int
指定u
和long unsigned int
。
这些字符很难区分,特别是对于用于编程的固定间距字体,出于这个原因,应该避免命名变量l
,ll
等和long
整数常量1l
应写为1L
。
答案 2 :(得分:1)
对双数据类型使用%lf
格式说明符。
答案 3 :(得分:1)
为各自的数据类型使用正确的格式说明符
float %f
double %lf
int %d
或%i
unsigned int %u
char %c
char * %s
long int %ld
long long int %lld