在我的代码中,平方变量R
总是给出零。
它是pow(R, 2)
还是R*R
并不重要。
为什么会这样?
(如果我将它改为浮动,它可以工作,但我需要它是精度的双倍。)
这是代码:
int main () {
double R,PI,a;
PI = 3.14159;
scanf(" %d", &R);
a = PI * (pow(R,2));
printf ( "A= %0.4d \n", a );
return 0;
}
答案 0 :(得分:2)
您在scanf
和printf
中使用了错误的格式说明符。
%d
格式说明符需要int
的{{1}}地址和scanf
的{{1}}地址。而是分别传递int
和printf
的地址。使用错误的格式说明符会调用undefined behavior。
您需要使用double
中的double
和%lf
中的scanf
%f
:
printf