题目描述
输入球的中心点和球上某一点的坐标,计算球的半径和体积
输入描述:
球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1
输出描述:
输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数 为避免精度问题,PI值请使用arccos(-1)。
示例1
输入
0 0 0 1 1 1
输出
1.732 21.766
#include<stdio.h>
#include<math.h>
int main(){
double x0,y0,z0,x1,y1,z1;
double PI=acos(-1.0);
while(scanf("%lf%lf%lf",&x0,&y0,&z0)!=EOF){
scanf("%lf%lf%lf",&x1,&y1,&z1);
double r,v;
//double x=x1-x0,y=y1-y0,z=z1-z0;
//double xx=x*x,yy=y*y,zz=z*z;
//double xyz=xx+yy+zz;
r=sqrt(pow(x1-x0,2)+pow(y1-y0,2)+pow(z1-z0,2));
v=4*pow(r,3)*PI/3;
printf("%.3f %.3f\n",r,v);
}
return 0;
}
注:(1)圆锥体体积=,S是底面积,h是高。
3维球体积公式:。
椭球在xyz-笛卡尔坐标系中的标准方程是:,其体积是
。
(2)C语言除法保留整数:a,b为int型,c=(float)a/b; printf("%.2f",c);
(3)定义PI:#include<math.h> #define PI acos(-1.0)
(4)题目本身不难,但是若像注释掉的代码那样写,会有一半的测试用例因为小数点后第三位不同而出错,故应当尽量将其连起来写。