我一直在這段代碼上工作太久,我無法弄清楚它! 此代碼的目的是創建一個單詞搜索遊戲。但是,我將小部件的功能分開,以使它們變得更易於管理。在下面的代碼中,程序應該輸出應該顯示從A到J的字母的單詞搜索的第一行,以及顯示從0到9的數字的左列。該程序也意味着在RANDOM位置輸出4個隨機隱藏詞(用戶應該在遊戲中找到)。我試圖通過檢查數組中的特定位置是否等於NULL來完成此操作,如果它是NULL,則應在該位置輸出隨機單詞。但是,由於某種原因沒有任何東西在屏幕上輸出。C中的循環錯誤
這是我到目前爲止的代碼:
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;
}
當你爲(int i = 0; i <4; i ++)定義第二個'i'循環' )外環中的'i'仍然在範圍內 –