写的一个公式中出现了一个隐藏的bug,找不到啊。
代码如下:#include <stdio.h>
int main()
{
int a;
int b;
int c;
int d;
int n;
float k2;
a = ;
b = ;
c = ;
d = ;
n = a + b + c + d;
k2 = 1.0 * n * (a * d - b * c) * (a * d - b * c) / ((a + b) * (c + d) * (a + c) * (b + d));
printf("K2 = %.3f",k2);
return 0;
}
例如,当输入40 10 30 20这四个数据时,可以正确打印结果4.762,
可当我输入3929157 167时输出的是1.779,然而正确答案是1.493。哪里有bug呢?
求解{:10_254:} 会不会是除法的问题,在c语言中,3/2=1 楼主分明是在怀疑编译器有 BUG 嘛,至少应该有其他和代码平行的信息,比如,问题描述,计算公式等等。 正确答案就是1.779,你的标准答案哪来的?自己可以验算一下。
自己验算好了吗?你的正确答案哪里来的? 小笨笨难得糊涂 发表于 2020-2-29 12:57
正确答案就是1.779,你的标准答案哪来的?自己可以验算一下。
抱歉,我的老师答案错了,浪费了您的时间,真对不起。{:10_266:} major_lyu 发表于 2020-2-29 13:14
自己验算好了吗?你的正确答案哪里来的?
抱歉,我的老师答案错了,浪费了您的时间,真对不起。{:10_266:} jackz007 发表于 2020-2-29 12:15
楼主分明是在怀疑编译器有 BUG 嘛,至少应该有其他和代码平行的信息,比如,问题描述,计算公式等等 ...
抱歉,我的老师答案错了,浪费了您的时间,真对不起。{:10_266:} 最后的魁拔 发表于 2020-2-29 11:49
会不会是除法的问题,在c语言中,3/2=1
抱歉,我的老师答案错了,浪费了您的时间,真对不起。{:10_266:}
页:
[1]