2012-10-31 29 views
2

我是這個網站的新手;實際上這是我的第一個問題。所以如果我在錯誤的背景下提出這個問題,請通知我,以便我做出調整。 我有一個在Visual Studio 2010中創建的程序,允許用戶輸入1到10之間的整數。該用戶將單擊一個按鈕,該按鈕反過來應該在文本框中計算並顯示該整數的factorial值。我認爲一切看起來都正確,但沒有出現在文本框中。如何在C++中創建階乘程序

下面的代碼是我一直使用的是什麼:

#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); 
     } 
    }; 
} 

我可以問一些幫助,以我做錯了什麼在這裏?

+1

您似乎沒有任何地方調用階乘。無論如何不是來自btnFactorial。 – imreal

+0

逐步使用調試器。 F10跳到下一行... –

+0

謝謝我現在就試試。我沒有收到任何錯誤或警告,並且表單加載正確,以允許用戶輸入整數值,但是當我單擊按鈕時沒有任何反應。 –

回答

0

你需要在某處調用你自己的函數。替換此:

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

,並寫:

nfact = Factorial(n); 
+0

我試過這樣做,並得到相同的結果;文本框中沒有任何內容應顯示用戶輸入到第一個文本框中的整數的階乘值。 –

+0

您是否正在使用調試器逐步完成代碼? – imreal

+0

是的,這是顯示我沒有錯誤。除非有另一種調試方式,而且我做得不對。我對使用Visual Studio 2010非常新穎。 –