我尝试编写一个程序,询问用户两个输入,然后计算一个音量。但是,程序一直给我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;
}
答案 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;