首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >代码从数学表达式中返回零。

代码从数学表达式中返回零。
EN

Stack Overflow用户
提问于 2022-01-26 00:38:08
回答 2查看 137关注 0票数 1
代码语言:javascript
运行
复制
#include <iostream> 
#include <cmath>

using namespace std;  

int Factorial_of(int n)
{
    int fact = 1, i;
    for(i=1; i<=n; i++)
    fact = fact * i;
    return fact;
}



int main()
{
    cout << Factorial_of(4) / (Factorial_of(10) * Factorial_of(abs(4-10))) << endl;
}

有人知道为什么这是打印0吗?

更新:

在更改了基于@M.Twarog的答案的代码之后,它现在输出的是"9.18577e-009“,有人知道为什么吗?

EN

回答 2

Stack Overflow用户

发布于 2022-01-26 00:46:00

代码语言:javascript
运行
复制
#include <iostream> 
#include <cmath>

using namespace std;  

double Factorial_of(int n)
{
    double fact = 1;
    int i;
    for(i=1; i<=n; i++)
    fact = fact * i;
    return fact;
}



int main()
{
    double res=Factorial_of(4) / (Factorial_of(10) * Factorial_of(abs(4-10)));
    cout<<res;
}

有一些错误/错误。除法的第一步总是用双变量。并且您的代码正在返回值,所以返回类型应该是双倍的。此外,在<<之前的cout语句中,您也错过了endl

票数 1
EN

Stack Overflow用户

发布于 2022-01-26 01:15:36

我可以解释修复后得到的输出:这是正确的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70857434

复制
相关文章

相似问题

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