C 制作单词搜索拼图?

C 制作单词搜索拼图?,c,arrays,char,C,Arrays,Char,我已经做了一个程序,允许你选择网格的大小,它允许你输入多达20个单词。现在我必须使用函数将输入的单词水平插入原始数组。函数必须返回一个成功值和一个失败值才能将单词输入拼图板。我需要帮助开始了解实际函数以及函数原型应该是什么样子。伪代码会有帮助。我是一个相当新的程序员,所以任何帮助都是很好的。多谢各位 #include<stdio.h> #include<string.h> void printmatrix(char matrix[][20],int); void ins

我已经做了一个程序,允许你选择网格的大小,它允许你输入多达20个单词。现在我必须使用函数将输入的单词水平插入原始数组。函数必须返回一个成功值和一个失败值才能将单词输入拼图板。我需要帮助开始了解实际函数以及函数原型应该是什么样子。伪代码会有帮助。我是一个相当新的程序员,所以任何帮助都是很好的。多谢各位

#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表示失败