首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试着用C++写一个方程式,但它一直输出1

我试着用C++写一个方程式,但它一直输出1
EN

Stack Overflow用户
提问于 2019-12-22 03:06:46
回答 3查看 78关注 0票数 1

正如标题所说,此代码旨在计算5人组中2个人生日相同的概率,但它只输出1,我对C++相当陌生,因此如果有任何帮助,我将不胜感激。

代码语言:javascript
复制
#include <iostream>
using namespace std;
int main(){
float p;

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

回答 3

Stack Overflow用户

发布于 2019-12-22 03:10:09

在每个数字上放置一个.0,这种方式被视为双精度型而不是整型。整数除法(364/365)等于0

代码语言:javascript
复制
p=1.0-(364.0/365.0)*(363.0/365.0)*(362.0/365.0)*(361.0/365.0);
票数 2
EN

Stack Overflow用户

发布于 2019-12-22 03:10:18

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

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

代码语言:javascript
复制
p=1-(364/365.0)*(363/365.0)*(362/365.0)*(361/365.0);
票数 2
EN

Stack Overflow用户

发布于 2019-12-22 03:10:34

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

代码语言:javascript
复制
p=1-(float(364)/float(365))*(float(363)/float(365))*(float(362)/float(365))*(float(361)/float(365));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59439093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档