C程序无法使用用户创建的功能输出正确的值

时间:2014-09-22 20:17:02

标签: c

我尝试编写一个程序,询问用户两个输入,然后计算一个音量。但是,程序一直给我0.00000。

#include <stdio.h>
#include <math.h>
#define PI 3.14159


float calvolume(float rad, float h)
{

return (1/3)*PI*pow(rad,2)*h;

}



int main()
{
float radius, height, volume;

printf("Please enter a radius: \n");
scanf("%f",&radius);

printf("Please enter a height: \n");
scanf("%f",&height);

volume = calvolume(radius,height);

printf("The volume is : %f \n",volume);

return 0;
}

1 个答案:

答案 0 :(得分:2)

 return (1/3)*PI*pow(rad,2)*h;

   (1/3) means zero

整数除法为零。做到这一点

 return (1.0f/3.0f)*PI*pow(rad,2.0f)*h;
 1.0f to avoid promotion, being probably faster.

更好的是:

 return (0.333333333f)*PI*pow(rad,2.0f)*h;

更好:

 return (0.333333333f)*PI*rad*rad*h;