我正在尝试在C ++中做一个方程式,但它一直输出1

时间:2019-12-21 19:06:45

标签: c++

正如标题所述,此代码用于计算2个人在5人一组中有相同生日的概率,但它仅输出1,对于C ++来说我是相当陌生的人,因此不胜感激。

#include <iostream>
using namespace std;
int main(){
float p;

p=1-(364/365)*(363/365)*(362/365)*(361/365);
cout<<p;
}

3 个答案:

答案 0 :(得分:2)

在每个数字上输入.0,那样将被视为双精度而不是整数。整数除法(364/365)等于0

p=1.0-(364.0/365.0)*(363.0/365.0)*(362.0/365.0)*(361.0/365.0);

答案 1 :(得分:2)

这是因为在计算364/365之后,计算出的答案是一个0的整数。

要使其正常工作,请像这样更改它。

p=1-(364/365.0)*(363/365.0)*(362/365.0)*(361/365.0);

答案 2 :(得分:1)

当两种类型均为/时,您需要将整数转换为浮点数,int将舍入为结果下方的最大整数:

p=1-(float(364)/float(365))*(float(363)/float(365))*(float(362)/float(365))*(float(361)/float(365));