编写一个程序,提示用户输入球体的半径并打印其体积
Write a program that prompts the user for the radius of a sphere and prints its volume
我用下面的代码没有得到正确的答案。任何人都可以调试这段代码吗?
当我输入 radius = 5 时,我得到的答案是 500.000000,而原来的答案应该是 523.80952。谁能解释一下这里出了什么问题?
球体积公式=4/3(π x r^3)
#include <stdio.h>
int main()
{
float radius = 0;
float volume;
float pie = 0;
printf("Enter radius");
scanf("%f", &radius);
pie = 22 / 7;
volume = (4*pie*radius*radius*radius)/3;
printf("the volume is %f", volume);
return 0;
}
问题出在行
pie = 22 / 7;
这里,除法的两个操作数都是整数常量,这是一个整数除法,结果被分配给 float
,这不是你想要的。您需要通过说
强制浮点除法
pie = ((float)22) / 7;
你也可以写pie = 3.14 ;
而不是pie = 22 / 7 ;
请记住:
(a) 两个整数之间的算术运算总是 returns 一个整数。
(b) 两个实数之间的算术运算总是 returns 一个实数。
(c) 整数与实数的算术运算 returns 为实数.
因此,pie = 22 / 7
将 return 500.000000 而不是 523.80952。
因此你也可以写 pie = 22.0 / 7
或 pie = 22 / 7.0
或 pie = 22.0 / 7.0
。这三个会return原来的答案
我用下面的代码没有得到正确的答案。任何人都可以调试这段代码吗? 当我输入 radius = 5 时,我得到的答案是 500.000000,而原来的答案应该是 523.80952。谁能解释一下这里出了什么问题?
球体积公式=4/3(π x r^3)
#include <stdio.h>
int main()
{
float radius = 0;
float volume;
float pie = 0;
printf("Enter radius");
scanf("%f", &radius);
pie = 22 / 7;
volume = (4*pie*radius*radius*radius)/3;
printf("the volume is %f", volume);
return 0;
}
问题出在行
pie = 22 / 7;
这里,除法的两个操作数都是整数常量,这是一个整数除法,结果被分配给 float
,这不是你想要的。您需要通过说
pie = ((float)22) / 7;
你也可以写pie = 3.14 ;
而不是pie = 22 / 7 ;
请记住: (a) 两个整数之间的算术运算总是 returns 一个整数。 (b) 两个实数之间的算术运算总是 returns 一个实数。 (c) 整数与实数的算术运算 returns 为实数.
因此,pie = 22 / 7
将 return 500.000000 而不是 523.80952。
因此你也可以写 pie = 22.0 / 7
或 pie = 22 / 7.0
或 pie = 22.0 / 7.0
。这三个会return原来的答案