c - 编写一个程序,提示用户输入球体的半径并打印其体积

标签 c floating-point division integer-division

我没有通过下面的代码得到正确的答案。有人可以调试这段代码吗? 当我输入半径= 5时,我得到的答案是500.000000,而原始答案应该是523.80952。谁能解释一下这里出了什么问题吗?

球体体积公式=4/3(π x r^3)

#include <stdio.h>

int main()


    {
    float radius = 0;
    float volume;
    float pie = 0;

    printf("Enter radius");
    scanf("%f", &radius);

    pie = 22 / 7;

    volume = (4*pie*radius*radius*radius)/3;
    printf("the volume is %f", volume);

    return 0;
    }

最佳答案

问题出在行上

 pie = 22 / 7;

这里,除法的两个操作数都是整数常量,这是一个整数除法,结果被分配给float,这不是你想要的。您需要通过说来强制浮点除法

pie = ((float)22) / 7;

关于c - 编写一个程序,提示用户输入球体的半径并打印其体积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818778/

相关文章:

c - printf 中的评估顺序和打印

c - Yacc 文件中字符串库的使用

matlab - Matlab中 double 的算术精度

python - 3/2 和 -3/2 有什么区别?

python - 在spark(python)中划分两个rdds的值

c++ - 告诉我的计算器不要除以零

c - 一小段位的初始化错误 - 为什么错误地设置了最后两个变量的最高有效位?

c - 指针数组和地址间隔

Java isNan 是如何工作的?

java - 将 float 格式化为 n 位小数