1

数値の配列があるとします:

int[] that = new [] {1, 2, 3, 2, 4, 8, 9, 7};

増加している数字が独自の線を持つように表示しようとしています。たとえば、結果は次のようになります。

1 2 3

2 4 8 9

7

を使用して最初の行を実行できます。

for (int i = 1; i < that.Length; i++) 
{
    if (that[i-1] < that[i]) 
    {
        Console.Write(that[i-1] + " ");
    }
}

問題は、1〜3が増加しているがその後停止するため、これは最初の行で機能することです。2 4 8 9、次に 7 が書き込まれるように続行する方法が正確にはわかりません。

4

4 に答える 4

1

これは宿題だと思うので、実際のコーディングはあなたに任せます。しかし、平易な言葉でそれを行う方法は次のとおりです。

  1. 前の値を格納する変数を用意します。これを oldValue と呼び、ゼロから始めましょう (配列で正の数のみを使用している場合)。
  2. 一度に 1 項目ずつ配列を調べます。
  3. その数値が oldValue より大きいかどうかを確認します。
  4. FALSE の場合、改行文字を出力します。C# では「\n」。
  5. その数値を出力し、oldValue をその数値と等しくします。
  6. 番号が終了しない限り、次の番号を取得してステップ 3 に進みます。
于 2013-10-10T18:31:22.740 に答える
-1
        int[] numbers = new int[] { 1, 2, 3, 2, 4, 8, 9, 7 };

        String orderedNumbers = String.Empty;

        for (int i = 0; i < numbers.Length; i++)
        {
            if (i == 0 || numbers[i] > numbers[i - 1])
            {
                orderedNumbers += numbers[i].ToString();
            }
            else
            {
                orderedNumbers += System.Environment.NewLine + numbers[i].ToString();
            }
        }

        MessageBox.Show(orderedNumbers);
于 2013-10-10T18:41:39.547 に答える