在代码中返回3221225725以进行简单概率运算
Return 3221225725 in a code for simple probability operation
我试图制作一个对概率进行简单运算的代码,但它总是返回相同的值(3221225725)。我多次重写和更改代码(更改变量类型、停止使用switch、为x-y创建变量等),但它始终返回相同的值。有人知道它为什么一直这样做吗?
#include<iostream>
#include<cmath>
using namespace std;
float z;
float y;
float a = z - y;
int factorial(float x)
{
if (x == 1)
{
return 1;
}
else
{
return x * factorial(x - 1);
}
}
int main()
{
cout << "Insert total number of elements or press 0 to exit" << endl;
cin >> z;
cout << "Insert total number of attempts or press 0 to exit" << endl;
cin >> y;
if (z > 0 && y > 0)
{
return (factorial(z) / (factorial(y)) * (factorial(a)));
}
else
{
return 0;
}
}
好吧,代码中有几个小问题,但它们加在一起会产生一大堆问题。
这是一个"工作"版本,可以解决您的大多数问题,代码中的注释表明您犯了哪些错误:https://coliru.stacked-crooked.com/a/0716e3a1fc7ecafc
你制造的大问题:
- 在初始化"a"之前,您使用"z"answers"y"中的值对其进行了初始化,这意味着"a"包含未初始化的内存,您将获得随机结果
- 您正在使用"=="浮点数字与浮点数字进行直接比较,浮点数字不是完美的表示,并且每次数学运算都会引入少量错误。当比较浮点数时,你几乎总是需要将它们与一些合理的容差进行比较,比如在0.00001以内
- 您使用主函数的"return"试图传递一个值。程序主函数的返回值是操作系统的标志,指示程序如何运行;0表示程序运行良好,任何其他值都表示错误代码。相反,您希望打印出值
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 如何根据单词在文本中出现的概率输出单词
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 从函数返回任意简单类型的数据
- 如何在没有函数的情况下编写此代码并使C++更简单?
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 拥有用于动态机会/概率的简单负载均衡器(在C++中,但语言无关)
- 在代码中返回3221225725以进行简单概率运算
- 兰德函数,生成3个值的概率(用于简单的老虎机)