c - 二维数组单词搜索谜题验证

标签 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 个数字。 我一整天都在试图解决这个问题,所以我非常感谢任何可以帮助我解决这个问题的人。

最佳答案

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

关于c - 二维数组单词搜索谜题验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799476/

相关文章:

c - 删除 Lex/flex 中除 Number 之外的所有内容

java - 编译器错误 “cannot be applied”?

python - 从 numpy 数组中删除多个切片

php - 选择不同组的不同值

c - 将二维数组传递给函数

c - 如何在C/C++中将二维数组的指针赋给内存地址

c - C中矩阵和 vector 乘法的优化

c++ - 如何解决此 TabStop 样式问题

c - pebble watch 上出现 "Ignoring invalid key: KEY_TEMPERATURE"错误

c - 如何修复此比较字符串(来自 argv 和 scanf)程序?