gpt4 book ai didi

C 程序在循环中调用包含字符串的数组

转载 作者:行者123 更新时间:2023-11-30 15:20:57 26 4
gpt4 key购买 nike

我对 C 相当陌生,并且我的数组有问题。该应用程序是一个字谜游戏,应该将用户的猜测与正确的单词进行比较。我试图在两个单独的数组中记录所有不正确的答案以及答案的正确版本。然而,在程序结束时,当我尝试打印所有不正确的猜测和正确版本时,它只打印数组中的第一项。我认为这可能是由数组引起的问题,因为它们保存字符串,所以在 C 中,我认为它本质上是数组中的数组?为什么我的代码只打印数组中的第一项?

(还有更多代码,但这只是关键部分,我认为这是唯一需要查看的部分)

char correctWord[20];
char anagramWord[20];
int guesses, score;
char* incorrectGuess[20];
char* correctVersion[20];

void userGuess(){
char userWordGuess[20];

printf("Anagram: ");
printf(anagramWord);
printf("\n Your Guess: ");
scanf("%s",userWordGuess); //Reads in user input
strtok(correctWord, "\n");
guesses++;

if(strcmp(userWordGuess, correctWord) == 0){
printf("Congratulations, you guessed correctly! (Please wait for the

next question...)\n");
score++;
Sleep(1600);
system("cls");
}else{
printf("Incorrect, try harder!(Please wait for the next question...) \n");
Sleep(1600);
system("cls");
int i = 0;
incorrectGuess[i]=(userWordGuess);
correctVersion[i]=(correctWord);
i++;
}
}

void finalScore(){
int i;
system("cls");
int percentage = ((score/guesses) * 100);
printf("Congratulations - Game Complete!");
printf("\n Guesses: %d", guesses);
printf("\n Score: %d", score);
printf("\n Percentage Correct: %d", percentage);
int numberOfIncorrect = (guesses-score);
for(i=0;i<=numberOfIncorrect;i++){
printf(incorrectGuess[i]);
printf(correctVersion[i]);
}
getch();
}

最佳答案

在此代码中,您没有使用任何值初始化 guessesscore,并且尝试增加它们。你应该有

int  guesses = 0 , score = 0 ;

然后,在您的 else block 中

else
{
printf("Incorrect, try harder!(Please wait for the next question...) \n");
Sleep(1600);
system("cls");
int i = 0; // you initialize i to 0 every time
incorrectGuess[i]=(userWordGuess);
correctVersion[i]=(correctWord);
i++;
}

在注释行中,每次都将 i 初始化为 0

关于C 程序在循环中调用包含字符串的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29774839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com