0

私は 3x7 トリックをプログラムしようとしています。完全なコードはhttps://codereview.stackexchange.com/questions/9419/programming-of-3-x-7-trickで入手できます。

ステップ5で行き詰まりました。

ここに画像の説明を入力

行の値を入力すると、このエラーが発生します。

ここに画像の説明を入力

エラーが何であるかわかりません。いくつかのガイダンスが必要です。

ステップ 6:ここに画像の説明を入力

4

2 に答える 2

2

このエラーは、内側のループの条件にタイプミスがある back_to_array 関数から発生します。j < numRowsの代わりにする必要がありi < numRowsます。

于 2012-02-26T09:32:00.570 に答える
1

i < numRows主な問題は、代わりにの間違いですj < numRows

リクエストに応じて、実装できるその他の変更を次に示します。

  • printf("%8i", ...の代わりに書いてくださいprintf("%i\t", ...。後者は数が不均一に広がる可能性があるためです。
  • 入力をサニタイズします。現在、奇妙な値を入力することでプログラムをクラッシュさせることができます。(また、値 0、1、2 または 1、2、3 のどちらを使用するかについてのヒントをユーザーに提供します。)
  • 現時点では、行 0 と列 0 をシャッフルしていません。たとえば、列 6 から開始して列を 1 つずつ調べますが、ループに再び入る前に、0 に到達するとすぐに停止します。
  • 同じ行に同じ数字が一緒に出現することがよくあるという問題があります。完全にはわかりませんが、問題は行をソートしていることだと思います。選択した行を常にデッキの中央に配置するポイントは、選択したカードを中央に向かって移動させることです。行を並べ替えると、カードが中央から離れることができます。並べ替えをコメントアウトしたところ、問題に気付かなくなりました。行を並べ替える理由はありますか?
  • 設計に関して: 個人的には、シャッフルされた配列を表示して、開始する前にキーストロークを待つことはしません。代わりに、指示を書いてすぐにプレーヤーに番号を入力するように求めます。最初の配列が表示された後、私は常に数値を入力しようとしました。とてもうるさい。:)
于 2012-02-26T10:56:00.320 に答える