我搜索了与我的问题类似的问题类似问题 https://stackoverflow.com/questions/3533594/sqrt-function-not-working-with-variable-arguments。但我的问题是使用 Turbo C 编译器 v3.0 时。我应该为 math.h 文件做一些额外的工作吗?请帮忙。
int main (void){
double result, a;
clrscr();
printf("Enter a # for square root.\n");
scanf("%f",&a);
printf("a = %f\n",a);
result = sqrt(a);
printf("a = %f and square root is %f\n",a, result);
getch();
return 0;
}
输出是这样的:
输入 # 作为平方根。
64
a = 0.000000
a = 0.000000 且平方根为 0.000000
For scanf()
, %f
is for float
。你需要使用%lf
for double
:
printf("Enter a # for square root.\n");
scanf("%lf",&a);
这与printf()
在类型提升允许的情况下%f
用于两者float
and double
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)