【发布时间】:2017-06-18 07:08:39
【问题描述】:
我正在尝试编写一个公式来计算球体的体积,用户输入半径。公式为V = (4/3)PI r*r*r。无论输入是什么,我都无法弄清楚为什么我的代码只是说音量是 1。这是我正在使用的:
#include <stdio.h>
int main(void) {
float pi, r, v;
pi = 3.1416;
printf("What is the radius?\n");
scanf("%d", &r);
v = ((4/3) * pi) * r * r * r;
printf("Volume of the sphere is: %d\n", v);
if (v>10)
printf("Volume is greater than 10");
return 0;
}
【问题讨论】:
-
scanf("%d", &r);是错误的。查阅文档。 -
4/3计算结果为 1。 -
(4/3)->(4.0/3.0). -
请阅读How to debug small programs。不推荐使用 SO 调试技术。如果你学会自助,你会得到更好的服务。
-
%d in printf 需要一个整数参数,但您传递的是浮点数,这会导致未定义的行为。
标签: c scanf integer-division