对于家庭作业的一部分,提示用户输入将存储在2D阵列中的单词。然后,这些输入的字符串将隐藏在单词搜索拼图中。提示需要保持循环,直到用户输入单词“完成”或用户输入了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”后退出循环?此外,输入“完成”时,不应将其输入数组。数组中的最后一个字符串应该是在“完成”之前输入的内容。
答案 0 :(得分: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++;
}
}
答案 1 :(得分:0)
在您的代码中使用它:
...
scanf("%s",word[i]);
if(strcmp(word[i],"done")==0){
strcpy(word[i],"");
break;
}
if((strlen(word[i]) > row) || (strlen(word[i]) > column))
...
希望它有所帮助...