C语言中的For循环错误

C语言中的For循环错误,c,for-loop,wordsearch,C,For Loop,Wordsearch,我已经在这个代码上工作了很长时间,我就是想不出来! 这段代码的目的是创建一个单词搜索游戏。但是,我已经将要执行的功能分成了几个小部分,以便它们更易于管理。在下面的代码中,程序应该输出单词搜索的第一行,它应该显示从A到J的字母,以及显示从0到9的数字的左列。该程序还可以在任意位置输出4个随机隐藏的单词(用户应该在游戏中找到)。我试图通过检查数组中的特定位置是否等于NULL来实现这一点,如果为NULL,则应在该位置输出随机字。然而,由于某种原因,屏幕上没有输出任何内容 这是我目前的代码: char

我已经在这个代码上工作了很长时间,我就是想不出来! 这段代码的目的是创建一个单词搜索游戏。但是,我已经将要执行的功能分成了几个小部分,以便它们更易于管理。在下面的代码中,程序应该输出单词搜索的第一行,它应该显示从A到J的字母,以及显示从0到9的数字的左列。该程序还可以在任意位置输出4个随机隐藏的单词(用户应该在游戏中找到)。我试图通过检查数组中的特定位置是否等于NULL来实现这一点,如果为NULL,则应在该位置输出随机字。然而,由于某种原因,屏幕上没有输出任何内容

这是我目前的代码:

char getRandomCharacter();
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

char getRandomCharacter(){
    int r = (rand() % 26) + 65;
    return (char)r;
}

int main(void){

    int randomNum;
    int rand2;
    char* wordSearch[10][10]={NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                            NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
    const char *takenWords[4];
    const char *words[20]={"DOG", "CAT", "ELEPHANT", "CROCODILE", "HIPPOPOTAMUS", "TORTOISE", "TIGER", "FISH", "SEAGULL", "SEAL", "MONKEY", "KANGAROO", "ZEBRA", "GIRAFFE", "RABBIT", "HORSE", "PENGUIN", "BEAR", "SQUIRREL", "HAMSTER"};


    printf("\n\tA\t\tB\t\tC\t\tD\t\tE\t\tF\t\tG\t\tH\t\tI\t\tJ\n");
    for(int i=1; i<11; i++){
        printf("\n%d\t", i-1);

            for(int i=0; i<4; i++){
                do{
                srand(time(NULL));
                rand2=(rand()%10);
                if(&wordSearch[rand2]==NULL){
                    int flag=0;
                    do{
                        randomNum = (rand()%20);
                        takenWords[i]=words[randomNum];
                        flag=0;
                        for(int j=0;j<i;j++){
                            if(strcmp(words[randomNum],takenWords[j])==0)flag=1;
                        }
                    }while(flag);
                    printf("%s\n", words[randomNum]);
                }
                }while(&wordSearch[rand2]==NULL);
            }
        printf("\n\n");
    }
        /*for(int j=0; j<10; j++){
            char c=getRandomCharacter();
            wordSearch[i][j]=c;
            printf("%c\t\t", *(&(wordSearch[i][j])));
        }*/

        getchar();
        return 0;
}
char getRandomCharacter();
#包括
#包括
#包括
#包括
char getRandomCharacter(){
int r=(rand()%26)+65;
返回(char)r;
}
内部主(空){
int随机数;
int rand2;
char*wordSearch[10][10]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
空,空,空,空,空,空,空,空,空,空,空,空,
空,空,空,空,空,空,空,空,空,空,空,空,
空,空,空,空,空,空,空,空,空,空,空,空,
空,空,空,空,空,空,空,空,空,空,空,空,
空,空,空,空,空,空,空,空,空,空,空,空,
空,空,空,空,空,空,空,空,空,空,空,空,
空,空,空,空,空,空,空,空,空,空,空,空,
空,空,空,空,空,空,空,空,空,空,空,空,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
const char*takenWords[4];
const char*WORD[20]={“狗”、“猫”、“大象”、“鳄鱼”、“河马”、“乌龟”、“老虎”、“鱼”、“海鸥”、“海豹”、“猴子”、“袋鼠”、“斑马”、“长颈鹿”、“兔”、“马”、“企鹅”、“熊”、“松鼠”、“仓鼠”};
printf(“\n\tA\t\tB\t\tC\t\tD\t\tE\t\tF\t\tG\t\tH\t\tI\t\tJ\n”);
对于(inti=1;i这个:


一定是错误的。数组中元素的地址永远不会为
NULL
。您可能是指没有
&
,但这也没有意义,因为
wordSearch
是一个二维数组…

当您为(inti=0;iI如你所说修复了它..但这导致了一个无限循环,它只一遍又一遍地显示同一个单词
while(&wordSearch[rand2]==NULL);