对于家庭作业的一部分,我有一个程序要求用户输入他们想要隐藏在单词搜索拼图中的单词。然后,我必须通过一个函数运行每个单词,该函数检查单词是否可以水平插入拼图。因此,该函数接受单词并尝试在随机的行和列位置启动它,并检查该单词是否适合。如果单词的每个字符替换空单元格或匹配单元格中的现有字符,则可以进行放置。如果可以插入单词,请将单词插入拼图并停止尝试放置单词。我必须尝试在拼图中插入10次这个单词(具有不同的起始位置)或直到插入单词。如果在完成10次尝试后,并且无法插入该单词,则该函数应该以不插入单词结束。无论是否插入单词,该函数都必须返回一个代码,表示指定单词成功或不成功插入拼图。
这是我到目前为止提出的代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char puzzle[20][20] = {};
int row = 0;
int column = 0;
char word[20][100] = {};
int numword = 0;
for(i = 0;i < numword;i++)
{
horizontalinsertion(puzzle,row,column,word);
}
这是我到目前为止所写的功能:
void horizontalinsertion(char puzzle[][20],int row,int col,char word[][100])
{
int num1 = 0;
int num2 = 0;
int i = 0;
int j = 0;
int k = 0;
srand(time(NULL));
while(i < 10)
{
for(j = 0;j < row;j++)
{
num1 = (rand()% row);
for(k = 0;k < col;k++)
{
num2 = (rand()% col);
printf("%d\n",num);
if(num <= strlen(word[j][k]))
{
printf("Word was successfully inserted\n");
break;
}
else
{
i++;
}
}
}
}
return;
}
'puzzle'数组用于打印单词搜索的网格,大小由用户使用'row'和'column'变量确定。 'word'数组存储用户想要放在拼图中的所有单词,整数'numword'用于跟踪用户输入的单词数。大多数情况下,我似乎无法弄清楚如何在生成适当的数字时停止循环,消息不会打印出来,并且在打印出11个时也应该只生成10个数字。 我一直在努力解决这个问题,所以我非常感谢能够帮助我解决这个问题的人。
答案 0 :(得分:0)
由于这一切都在虚函数中,而不是break
,您可以使用return
退出整个函数。