2

このウェブサイトは初めてです。実際、これは私の最初の質問です。したがって、この質問を間違った文脈で行っている場合は、調整できるようにお知らせください。ユーザーが 1 から 10 までの整数を入力できるように Visual Studio 2010 で作成されたプログラムがあります。そのユーザーはボタンをクリックし、整数の階乗値を計算してテキスト ボックスに表示します。すべてが正しく見えると思っていましたが、テキスト ボックスに何も表示されません。

次のコードは、私が使用しているものです。

#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 に答える