题目描述
输入球的中心点和球上某一点的坐标,计算球的半径和体积
输入描述:
球的中心点和球上某一点的坐标,以如下形式输入: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(){
int x0, y0, z0, x1, y1, z1;
double PI = acos(-1); //π
double r, v; //半径和体积
while(scanf("%d%d%d%d%d%d", &x0, &y0, &z0, &x1, &y1, &z1) != EOF){
double r2 = (x1 - x0)*(x1 - x0) + (y1 - y0)*(y1 - y0) + (z1 - z0)*(z1 - z0); //半径的平方
r = sqrt(r2); //半径公式
v = (4.0 / 3) * PI * r2 * r; //体积公式,这里要注意 4.0 / 3,这样系统才会把结果记为浮点数
printf("%.3f %.3f\n", r, v);
}
return 0;
}