-1

一連の行を含む入力ファイルを受け取りました。行を数えるだけでなく、それらを分析できるようにしたいです。

入力は整数のみの何行ものコードになります。元:

3 2
1 2
2 3
4 3
1 2
2 3
3 4

ここがトリッキーな部分です: 最初の行には 3 と 2 の 2 つの数字があります (3 は今のところ関係ありません)。2は本当に重要です。これは、読み取って保存する必要がある行数を表します。したがって、この例によれば、行を保存する必要があります

1 2
2 3

では、なぜ他の行があるのでしょうか。- あなたが尋ねる。さて、この入力をブロックとして見てみましょう。行の後、3 2私は2行を読みました。それで、そのブロックが終わったようなものです。しかし、その後、ライン4 3が登場しました。これは、最初のブロックで行ったのとまったく同じことをしなければならないことを意味します。したがって、行から4 3、次の 3 行を読み取って保存する必要があることがわかりました。行を意味する

1 2
2 3
3 4

私はこのために丘を越えてきましたが、可能な解決策を見つけることができないようです

4

1 に答える 1

1

このような問題が発生した場合、最初に構造を考えると便利です。開始するためのメイン アルゴリズムの簡単な疑似コードの 1 つのメソッドを次に示します。コードとその問題を提示しない限り、人々は本当に助けにはなりません。

declare line buffer array

while (read a line into buffer == succeeds) {
   scan buffer for two numbers (m, n)
   loop how many times? {
      read a line into buffer
      scan buffer for next two numbers (x, y)
   }
}

これを C に翻訳するのはそれほど難しくないはずです。それを拡張して、スキャンした数値を格納したり、行を数えたりすることができます。

いくつかのコードを作成しても、それが機能せず、何が問題なのかがわからない場合は、多くの助けが得られます。

于 2013-03-12T21:17:31.573 に答える