题目描述
给定一个球的中心点坐标和球面上某一点的坐标,请你计算球的半径和体积。
输入格式
第一行包含整数 T,表示共有 T组测试数据。
每组数据占一行,包含六个整数 x0,y0,z0,x1,y1,z1,分别表示球的球心坐标 (x0,y0,z0)和球面上一点坐标 (x1,y1,z1)。
输出格式
每组数据输出一行,一个结果,首先输出球的半径,然后输出球的体积。
两数之间空格隔开,保留两位小数。
数据范围
1≤T≤10
,
−5≤x0,y0,z0,x1,y1,z1≤5
输入样例:
1
0 0 0 1 0 0
输出样例:
1.00 4.19
C++ 代码
#include<iostream>
#include<cmath>
using namespace std;
const double pai = 3.1415926;
int main(){
int n;
cin >> n;
while(n--){
int x0,y0,z0,x1,y1,z1;
cin >> x0;cin >> y0;cin >> z0;
cin >> x1;cin >> y1;cin >> z1;
double r = sqrt((x1-x0)*(x1 - x0)+(y1-y0)*(y1 - y0)+(z1-z0)*(z1 - z0)*1.0);
double v = pai*4.0/3.0*r*r*r;
printf("%.2lf %.2lf\n",r,v);
}
return 0;
}
记录一个初学C++的愚蠢的错误
int x0,y0,z0,x1,y1,z1;
cin >> x0,y0,z0,x1,y1,z1;
正确的做法是:
int x0, y0, z0, x1, y1, z1;
cin >> x0 >> y0 >> z0 >> x1 >> y1 >> z1;