为什么显示0呢
#include<stdio.h>#define PI 3.141592
main()
{
double R,H,V,K,P;
R=0.5;
H=0.5;
P=7800;
V=(1/3)*PI*R*R*H;
K=P*V;
printf("%.6lf %.4lf",V,K);
} #include<stdio.h>
#define PI 3.141592
main()
{
double R,H,V,K,P;
R=0.5;
H=0.5;
P=7800;
V=(1.0/3)*PI*R*R*H;
K=P*V;
printf("%.6lf %.4lf",V,K);
}
1/3是得0 塔利班 发表于 2018-10-23 20:22
1/3是得0
不对呀,得出来的第二个数有轻微误差 长发大哥 发表于 2018-10-23 20:36
不对呀,得出来的第二个数有轻微误差
差在哪里,?{:10_297:} 长发大哥 发表于 2018-10-23 20:36
不对呀,得出来的第二个数有轻微误差
肯定有误差,至少不是 0 你不会是说和计算器比吧,小数存储有精度的 塔利班 发表于 2018-10-23 20:38
差在哪里,?
RH都是0.5的时候,正确答案为0.130900和1021.0167而我的输出来是0.130900和1021.0174
塔利班 发表于 2018-10-23 20:40
你不会是说和计算器比吧,小数存储有精度的
不是,是编译器。小数不对,刷题过不了 我又看了一下,好像一点没错,而且都没有4舍五入 1074才是正确的,计算器也是1074,你的编译器存储小数位数不够? 塔利班 发表于 2018-10-23 20:40
你不会是说和计算器比吧,小数存储有精度的
输入一个铁质的圆锥体的半径和高度,已知铁的密度是7.8×1000kg/m3,求该圆锥体的体积和重量。要求使用符号常量,小数点后保留6位精度。这是题目 恩,能看出来,这个过程都是能整除的,是不是答案有问题,你算的1021.1074就是正确的 塔利班 发表于 2018-10-23 20:45
1074才是正确的,计算器也是1074,你的编译器存储小数位数不够?
Devc++ 长发大哥 发表于 2018-10-23 20:48
Devc++
恩,要求答案的编译器也是DEVC++?
是不是版本问题
我这运行就是1074,但是用的是线上编译器,平时不按C相关的 塔利班 发表于 2018-10-23 20:50
恩,要求答案的编译器也是DEVC++?
是不是版本问题
我这运行就是1074,但是用的是线上编译器,平时不按C ...
我知道了是3.14159,精度到这里就好了,我再加了以为小数 长发大哥 发表于 2018-10-23 21:11
我知道了是3.14159,精度到这里就好了,我再加了以为小数
恩,好吧。。{:10_319:} up主你要知道1/3(默认整型) 可是为零的(默认取整数)
所以只要 稍微一改 改成 1.0/3 或者 1/3.0再或1.0/3.0就行啦{:10_282:}
页:
[1]