0

宿題の一部で、ユーザーは 2D 配列に格納される単語を入力するよう求められます。これらの入力された文字列は、単語検索パズルに隠されます。ユーザーが単語「done」を入力するか、ユーザーが 20 単語を入力するまで、プロンプトはループし続ける必要があります。また、単語が実際のパズルよりも大きい場合は、エラー メッセージが表示され、プロンプトが再びループします。while ループは、この問題に取り組むための最良の方法だと思いました。

これは私がこれまでに持っているものです:

int row = 0;
int column = 0;
char word[20][100] = {};
int i = 0;

while(i < 20)
    {
      printf("Enter a word you would like hidden in the puzzle. Type 'done' when finished:\n");
      scanf("%s",word[i]);
      if((strlen(word[i]) > row) || (strlen(word[i]) > column))
      {
        printf("Error. Word was too long to enter into puzzle.\n");
      }
      else
      {
        i++;
      }
    }

ループは 20 単語が入力されるまで続きますが、「done」という単語が入力された後にプログラムがループを終了するように while ステートメントを再構成するにはどうすればよいですか? また、'done' が入力された場合は、配列に入力しないでください。配列の最後の文字列は、'done' の直前に入力されたものでなければなりません。

4

2 に答える 2