题目描述
输入球的中心点和球上某一点的坐标,计算球的半径和体积输入描述:
球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1
输出描述:
输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数 为避免精度问题,PI值请使用arccos(-1)。示例1
输入
复制0 0 0 1 1 1
输出
复制1.732 21.766
解题思路
利用公式,求解即可。
PS: 一开始定义float 变量一直无法AC ,后改成double变量通过。
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int main() 6 { 7 double pi = acos(-1); 8 int x0,y0,z0,x1,y1,z1; 9 while(scanf("%d%d%d%d%d%d",&x0,&y0,&z0,&x1,&y1,&z1)!=EOF) 10 { 11 double r,v; 12 r = sqrt( 13 (x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)+(z1-z0)*(z1-z0) 14 ); 15 v = (4.000/3) * pi* r*r*r; 16 printf("%.3lf %.3lf",r,v); 17 } 18 }
summary
看了别人的code 才想起 pow() 函数 C 库函数 double pow(double x, double y) 返回 x 的 y 次幂,即 xy 函数声明:
double pow(double x, double y)