#include "stdio.h"
#include "math.h"
#define PI 3.1415926
double myFunc(double r,double h,double length)
{
double mianJi=0;
double hudu;
if(r<0||h<0||length<0||h>2*r)
{
printf("参数输入错误\n");
return 0;
}
if(h { hudu=acos((r-h)/r);//求水面与圆心组成的三角形角度 mianJi=hudu*r*r-(r-h)*r*sin(hudu);//扇形面积减去三角形面积 } else//水面高度超过圆的半径 { hudu=acos((h-r)/r);//求水面与圆心组成的三角形角度 mianJi=PI*r*r-(hudu*r*r-(h-r)*r*sin(hudu));//圆面积减去扇形面积 } return mianJi*length;//先算出水面的面积,再乘以圆柱高度就是水的体积 } void main() { double r,h,length,sum; printf("请输入圆柱底面圆半径:\n"); scanf("%lf",&r); printf("请输入圆柱高度:\n"); scanf("%lf",&length); printf("请输入横放圆柱水面高度:\n"); scanf("%lf",&h); printf("圆柱体中所装水的体积为%lf.\n",sum); } 纯手工,验证无误,结果如下: