4

私はC#でコードを書いていて、数字1とNの間のすべての数字を追加しようとしています.Nはテキストボックスに入力された数字です。私はこれをやっています、少なくともこれをやろうとしていますが、それを while ループに入れています。

以前に 2 つのテキストボックスの間にすべての数字を追加したことがありますが、何らかの理由で気が狂ってしまい、これを理解できません。プログラミング初心者ですのでお手柔らかにお願いします。

どんな助けでも大歓迎です。

編集:私が試した6000のことの1つ。これは無限ループに陥っていると思いますか?

       private void btnAddAll_Click(object sender, EventArgs e)
       {
           int n;
           int count = 0;
           int answer = 0;

           n = int.Parse(txtNum.Text);

           count = n;

           while (count >= 1)
           {
               answer = answer + count;
               count++;
           }
               lstShow.Items.Add("Sum = " + answer);
               lstShow.Text = answer.ToString();
       }
4

4 に答える 4

9

なぜガウスの公式を使わないのですか?(N*(N+1))/2

private void btnAddAll_Click(object sender, EventArgs e)
{
     int n, answer;  
     n = int.Parse(txtNum.Text);
     answer = (n*(n+1))/2;
     lstShow.Items.Add("Sum = " + answer);
     lstShow.Text = answer.ToString();
}
于 2012-10-25T01:49:55.017 に答える
3

あなたの編集:カウントを減らす必要があります..別の編集、もっと説明する必要があるようです:デクリメントとは. 後または前デクリメント演算子は、値を 1 減らします。--

count が 1 ずつ増加し続ける場合、count >=1は決して満たされません。countを 1に減らす必要があります。count--;

TryParse(string,out int) ;また、使用するか、少なくともParse呼び出しを a でラップすることをお勧めしますtry catch block

擬似コードのポインターは次のとおりです。

GetInput From User
TryParse Input
If Between 1 and N
Declare sum = 1;

for i to N-1 
   sum+=i; 

/* if you don't want to use the for loop
  while i < N 
  sum+=i;
  inc i; */
Print sum
于 2012-10-25T00:49:03.120 に答える
3

をa に変更する++と、--希望どおりに動作するはずです。

   int n;
   int count = 0;
   int answer = 0;

   n = 3;

   count = n;

   while (count >= 1)
   {
       answer = answer + count;
       count--; // here was the error
   }

   Console.WriteLine (answer);

出力: 6

また、追加の関心事として、while ループの代わりにEnumerable.RangeEnumerable.Sumを使用することもできます (おそらく宿題に期待される範囲を超えていますが、そこに何があるかを知ることは役に立ちます)。

answer =  Enumerable.Range(1, n).Sum();
于 2012-10-25T00:58:41.950 に答える
0

デバッグは、すべてのプログラマーにとって重要なスキルです。Visual Studio には、デバッグに役立つ優れたツールがいくつかあります。

行き詰まったときにコードをデバッグする良い方法は、「ブレークポイント」を使用してコードをステップ実行することです。

コードを停止する行 (例: n = int.Parse(txtNum.Text);) を選択し、F9 キーを押します。これにより、この行にブレークポイントが追加されます。

これで、プログラムを実行すると、ブレークポイントで停止します。F11 を押すと、一度に 1 行ずつコードを「ステップ実行」できます。これを行っている間、マウスを変数の上に置くと、その値が表示されます。

これを行うと、コード内の問題がすぐに見つかります。

于 2012-10-25T01:01:32.110 に答える