2

我是这个网站的新手;事实上,这是我的第一个问题。因此,如果我在错误的上下文中提出这个问题,请通知我,以便我做出调整。我有一个在 Visual Studio 2010 中创建的程序,允许用户输入从 1 到 10 的整数。该用户将单击一个按钮,该按钮依次计算并在文本框中显示整数的阶乘值。我认为一切看起来都正确,但文本框中没有出现任何内容。

以下代码是我一直在使用的:

#pragma endregion
        private: System::Void btnFactorial_Click(System::Object^  sender, System::EventArgs^  e) 
        {
            int n;
            int nfact = 1;
            Int32::TryParse(txtNum->Text, n);
            if (n > 0)
            {
                for (int i = 1; i <= n; i++)
                    nfact *= i;
                txtResult->Text = nfact.ToString();
            }
            else
                MessageBox::Show ("Please enter a value > 0");      
        }

        private: int Factorial (int n)
        {
            if (n == 0)
                return 1;
            else
                return n * Factorial (n-1);
        }
    };
}

我可以就我在这里做错了什么寻求帮助吗?

4

1 回答 1

0

您需要在某处调用自己的函数。替换这个:

for (int i = 1; i <= n; i++)
                nfact *= i;

并写下:

nfact = Factorial(n);
于 2012-11-01T00:05:35.927 回答