首页 > 试题广场 >

计算球体的体积

[编程题]计算球体的体积
  • 热度指数:42421 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4/3*πr3,其中 π = 3.1415926。


数据范围:输入一个浮点值


输入描述:
一行,用浮点数表示的球体的半径。


输出描述:
一行,球体的体积,小数点后保留3位。
示例1

输入

3.0

输出

113.097
4/3结果为int型得1,需要4.0/3.0
#include<iostream>
(720)#include<iomanip>
#include<math.h>
(865)#define pi 3.1415926
using namespace std;
int main()
{
    double r,v;
    cin>>r;
    v=(4.0/3.0)*(pi*pow(r,3));
    cout<<setiosflags(ios::fixed)<<setprecision(3);
    cout<<v<<endl;
    return 0;
}

发表于 2020-04-08 16:56:36 回复(1)
精度问题困扰在下了。
本题中float精度不够,不能通过所有测试用例。
经过小小的研究,发现在输入输出时,如果数据类型对应为double,应该使用l修饰。如果定义半径r为double类型,但scanf时指定输入格式为%f会报错,指定为%lf即可。同理,可以用%.3lf指定输出3位小数的double数据。
#include <stdio.h>
#include <math.h>

#define PI 3.1415926

int main(void){
    double r;
    scanf("%lf",&r);
    double v = 4.0/3.0*PI*pow(r,3);
    printf("%.3lf",v);
}


编辑于 2020-03-21 16:56:14 回复(8)
#include <stdio.h>
int main()
{
    float r;
    double p=3.1415926;
    scanf("%f",&r);
    printf("%.3f",4.0/3*p*r*r*r);
}
发表于 2020-06-01 19:55:10 回复(0)
r = float(input())
π=3.1415926
v = (4/3)*π*r**3
print('{:.3f}'.format(v))

发表于 2021-07-15 22:09:30 回复(0)
#include<stdio.h>
#define PAI 3.1415926
int main()
{
    double r=0.0;
    scanf("%lf",&r);
    double v=0.0;
    v=4.0/3.0*PAI*r*r*r;
    printf("%.3f",v);
    
    
    return 0;
}

发表于 2022-05-12 12:06:44 回复(0)
#include<iostream>
#include<cmath>
double pi = 3.1415926;
using namespace std;
int main()
{
    float radius;
    cin>>radius;
    printf("%.3lf\n",4.00/3*pi*pow(radius,3));
    
}

发表于 2021-07-06 21:57:59 回复(0)
#include<stdio.h>
#include<math.h>
#define pai 3.1415926
int main()
{
    double r;
    scanf("%lf",&r);
    printf("%.3lf",4*pai*pow(r,3)/3);
    return 0;
}

发表于 2021-07-06 21:48:45 回复(0)
a=float(input())
print("{:.3f}".format(4/3*3.1415926*pow(a,3)))
发表于 2020-05-11 16:36:58 回复(1)
#include<stdio.h>
#include<math.h>
#define A 3.1415926
int main(){
    double V,r;
    scanf("%lf",&r);
    V = 4.0/3*A*pow(r,3);
    printf("%.3lf",V);
    return 0;
}
注意点就是计算体积的时候一定不要4/3, 4和3中一定至少要有一个为浮点数,可以为4.0/3,4/3.0,4.0/3.0,如果不这样的化,单纯4/3 就会变成整数的除法,结果会变成1,小数点后面的小数就会被丢弃。
还要,建议要使用double,因为double的精度更高,使用double的时候注意使用scanf的时候 里面要是%lf ,不能像float一样为 %f,但是对于double类型的数据输出时(printf)里面可以为%lf也可以为%f,但是为了方便记忆的化,就是如果你是double类型,输入输出都用%lf,是float类型输入输出都用%f,这样成对儿比较方便记忆。
发表于 2022-04-12 19:20:51 回复(0)
哪位能告诉我这是什么原因,是因为float的精度吗?
发表于 2021-08-15 15:38:48 回复(2)
int main()
{
    double n = 0.0;
    double D = 3.1415926;
    scanf("%lf", &n);
    if (n >= 0 && n <= 15)
    {
        double V = (4.0 / 3) * D * (n * n * n);

        printf("%.3lf\n", V);
    }
    else
    {
        printf("输入错误");
    }
    return 0;
}
发表于 2025-02-22 23:47:29 回复(0)
#include <stdio.h>

int main() {
    double V, r;
    double t, x;
    scanf("%lf", &r);
    t = 3.1415926;
    V = 4.0 / 3.0 * t * r * r * r;

    printf("%.3lf", V);
    return 0;
}
发表于 2024-05-03 19:42:37 回复(0)
#include <stdio.h>
#include <math.h>

int main() 
{
    const double pi = 3.1415926;
    double r = 0.0f;
    double vloume = 0.0f;

    scanf("%lf", &r);

    //计算体积
    vloume = 4 / 3.0 * pi * pow(r, 3);

    printf("%.3lf\n", vloume);

    return 0;
}

发表于 2024-03-18 16:06:24 回复(0)
发表于 2024-03-11 21:55:25 回复(0)
#include<stdio.h>
int main()
{
    double a = 3.1415926, b = 0,v=0;
    scanf("%lf", &b);
    v = 4.0 / 3 * a * b * b*b;
    printf("%.3lf", v);
    return 0;
}
发表于 2023-10-22 11:13:19 回复(0)
#include <stdio.h>
#define pi 3.1415926

int main() {
    float r=0;
    scanf("%f",&r);
    double v=(4/3.0)*pi*(r*r*r);
    printf("%.3f",v);
    return 0;
}

发表于 2023-03-07 10:09:08 回复(0)
#include <stdio.h>
int main()
{
    double r = 0.0;
    double pai = 3.1415926;
    double V = 0.0;
    scanf("%lf", &r);
    V = 4 / 3.0 * pai * r * r * r;
    printf("%0.3lf",V);
    return 0;
}
发表于 2023-03-01 10:52:46 回复(0)
#include <stdio.h>

int main() 
{
    double r = 0.0; 
    scanf("%lf",&r);
    double π = 3.1415926;
    double v =  (4.0/3)*π*r*r*r;
    printf("%.3f",v);
    return 0;
}

发表于 2023-01-28 15:20:55 回复(0)
#define p 3.1415926
#include<stdio.h>
int main() {
    double r = 0.0;
    double v = 0.0;
    scanf("%lf", &r);
    v = (4.0 / 3) * p * (r * r * r);
    printf("%.3lf", v);
    return 0;
}
发表于 2022-10-02 16:41:09 回复(0)
#include<stdio.h>
 
#include<math.h>

int main()
{
    double r,v;
    double s=3.1415926;
    scanf("%lf" , &r);
    v=(4.0/3.0)*(s*(r*r*r));
    printf("%.3lf" , v);
    return 0;
}

发表于 2022-08-06 21:00:14 回复(0)