五月天的天 发表于 2020-5-7 19:47:35

求解释!!!!!

double s=300,h=10,V;
V=(1/3)*s*h;
printf("%f\n",V);

求大佬解释为什么输出是零啊

zltzlt 发表于 2020-5-7 19:52:47

本帖最后由 zltzlt 于 2020-5-7 19:55 编辑

1. (1 / 3) 的结果是 0,因为这是整数除法,使用的是地板除。将其中一个改为小数就可以了
2. 打印 double 数据要用 %lf 占位符(不是 %f)

这样就 OK 了:

#include <stdio.h>

int main()
{
    double s = 300, h = 10, V;
    V = (1.0 / 3) * s * h;
    printf("%lf\n", V);
    return 0;
}

小甲鱼的铁粉 发表于 2020-5-7 19:52:53

printf("%lf\n",V);
少了一个l
页: [1]
查看完整版本: 求解释!!!!!