0

对于家庭作业的一部分,提示用户输入将存储在二维数组中的单词。这些输入的字符串将被隐藏在单词搜索谜题中。提示需要不断循环,直到用户输入单词“完成”或用户输入了 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 个单词,但是如何重新配置​​ while 语句以便程序在输入单词“done”后退出循环?此外,当输入“完成”时,不应将其输入到数组中。数组中的最后一个字符串应该是在“完成”之前输入的内容。

4

2 回答 2

2
   while(i < 20)
   {
      printf("Enter a word you would like hidden in the puzzle. Type 'done' when finished:\n");
      scanf("%s",word[i]);

      if(strcmp(word[i],"done")==0)
          break;


      if((strlen(word[i]) > row) || (strlen(word[i]) > column))
      {
          printf("Error. Word was too long to enter into puzzle.\n");
      }
      else
      {
         i++;
      }
  }
于 2014-03-30T20:54:29.400 回答
0

在您的代码中使用它:

...
scanf("%s",word[i]);
if(strcmp(word[i],"done")==0){
    strcpy(word[i],"");
    break;
}
if((strlen(word[i]) > row) || (strlen(word[i]) > column))
...

希望它有所帮助...

于 2014-03-30T20:54:17.370 回答