我正在尝试编写一个对概率进行简单操作的代码,但它始终返回相同的值(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;
}
}
答案 0 :(得分:0)
好的,您的代码有几个小问题,但是它们共同带来了很多问题。
这里是一个“有效的”版本,可以解决您的大多数问题,代码中的注释表明您犯了哪些错误:https://coliru.stacked-crooked.com/a/0716e3a1fc7ecafc
您遇到的大问题: