C 制作单词搜索拼图?
我已经做了一个程序,允许你选择网格的大小,它允许你输入多达20个单词。现在我必须使用函数将输入的单词水平插入原始数组。函数必须返回一个成功值和一个失败值才能将单词输入拼图板。我需要帮助开始了解实际函数以及函数原型应该是什么样子。伪代码会有帮助。我是一个相当新的程序员,所以任何帮助都是很好的。多谢各位C 制作单词搜索拼图?,c,arrays,char,C,Arrays,Char,我已经做了一个程序,允许你选择网格的大小,它允许你输入多达20个单词。现在我必须使用函数将输入的单词水平插入原始数组。函数必须返回一个成功值和一个失败值才能将单词输入拼图板。我需要帮助开始了解实际函数以及函数原型应该是什么样子。伪代码会有帮助。我是一个相当新的程序员,所以任何帮助都是很好的。多谢各位 #include<stdio.h> #include<string.h> void printmatrix(char matrix[][20],int); void ins
#include<stdio.h>
#include<string.h>
void printmatrix(char matrix[][20],int);
void inserthor(char matrix[][20],int);
int main(void)
{
//declare variables
char matrix[20][20];
char words[20][100];
int x;
int a,b;
int i=0;
int n=0;
for (a=0;a<20;a++)
{
for (b=0;b<20;b++)
{
matrix[a][b] = '+';
}
}
while (x<10 || x>20)
{
printf("How large would you like the puzzle to be (between 10 and 20):\n");
scanf("%d",&x);
}
printmatrix(matrix,x);
//part 3
printf("Enter up to 20 words to hide in the puzzle.\n");
printf("Enter the word 'done' after your last word if entering less than 20 words.\n");
for (i = 0; i < 20; i++)
{
printf("Enter word %2d:\n", i+1);
if (scanf("%99s", words[i]) != 1 || strcmp(words[i], "done") == 0)
break;
}
n = i;
printf("%d words entered\n", n);
for (i = 0; i < n; i++)
printf("Word %2d = [%s]\n", i+1, words[i]);
return 0;
}
void printmatrix(char matrix[][20],int x)
{
int i,j;
printf("Empty Puzzle:\n");
for (i=0;i<x;i++)
{
for (j=0;j<x;j++)
{
printf(" %c ", matrix[i][j]);
}
printf("\n");
}
}
您的函数原型
void inserthor(char matrix[][20],int);
缺少包含要输入的单词和要返回的值的参数。你可以用
char *inserthor(char matrix[][20], int order, char *word)
{
int i, j, l = strlen(word);
for (i = 0; i < order; ++i)
for (j = 0; j <= order-l; ++j)
if (matrix[i][j] == '+') return memcpy(&matrix[i][j], word, l);
return NULL;
}
它返回插入字的地址表示成功,返回NULL表示失败