二维阵列词搜索拼图验证

时间:2014-04-02 00:36:35

标签: c arrays multidimensional-array

对于家庭作业的一部分,我有一个程序要求用户输入他们想要隐藏在单词搜索拼图中的单词。然后,我必须通过一个函数运行每个单词,该函数检查单词是否可以水平插入拼图。因此,该函数接受单词并尝试在随机的行和列位置启动它,并检查该单词是否适合。如果单词的每个字符替换空单元格或匹配单元格中的现有字符,则可以进行放置。如果可以插入单词,请将单词插入拼图并停止尝试放置单词。我必须尝试在拼图中插入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个数字。 我一直在努力解决这个问题,所以我非常感谢能够帮助我解决这个问题的人。

1 个答案:

答案 0 :(得分:0)

由于这一切都在虚函数中,而不是break,您可以使用return退出整个函数。