zzzz95 2021-10-22 20:54 采纳率: 50%
浏览 44

c语言中double和float使用时的区别

#做题时遇到一个题目不明白为什么要用double

题目如下

Description
给定一个球体的直径(非负数),求它的表面积和体积。
Input
输入只有一个非负实数,表示球体的直径。
Output
输出有2行,格式见样例。其中等号(“=”)前后各有一个空格,输出的结果保留6位小数。
Sample Input
2.0
Sample Output
area = 12.566371 volume = 4.188790
HINT
在math.h中,定义了一个常量M_PI,它就是圆周率。如果你的结果不对,试着包含这个头文件并使用常量M_PI代替你程序中的圆周率。

使用math.h中M_PI的程序在OJ上无法编译通过,请自行定义M_PI为3.14159265358979323846,或者用三角函数计算M_PI的值,如:4atan(1.0),-2asin(-1)。

#答案
#define M_PI 3.14159265358979323846
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
double R,area,volume;
scanf("%lf",&R);
volume=M_PIRRR/6;
area=M_PI
R*R;
printf("area = %.6lf\n",area);
printf("volume = %.6lf\n",volume);

return 0;
}

求大佬解答

  • 写回答

1条回答 默认 最新

  • 赵4老师 2021-10-22 23:53
    关注
    
    #define M_PI 3.14159265358979323846
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main()
    {
    double D,R,area,volume;
    scanf("%lf",&D);
    R=D/2.0;
    volume=4.0/3.0*M_PI*R*R*R;
    area=M_PI*D*D;
    printf("area = %.6lf",area);
    printf(" volume = %.6lf\n",volume);
    
    return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月22日