gpt4 book ai didi

c - 为什么这段代码在每个循环中都重写 char 数组的元素?

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:07 25 4
gpt4 key购买 nike

我想制作一个刽子手游戏。我用 '' 字符填充了一个 char 数组,然后从用户那里扫描了一个 char,如果该字符与具有先前定义的单词的任何字符匹配,它将 '' 字符交换为正确的字母.

但我的代码在每个循环中都将正确的字母重写为“_”,我不知道为什么。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

#define words_num 4

int i ;


char a[length] ;

char guess;

while(1) {

printf("Guess a letter \n") ;

scanf(" %c", &guess) ;

hangman( guess, words[chosen] , a, length ) ;

}


printf("\n") ;
system("pause") ;
}

void hangman (char guessed, char words[], char a[] , int length ){


for (i = 0; i < length ; i++ ) {

a[i] = '_' ;
}

for (i=0; i< length ; i++) {

if (guessed == words[i]) {

a[i] = guessed ;
}
}

for(i=0; i< length; i++) {
printf("%c ", a[i]) ;
}

}

最佳答案

很明显,因为用下划线填充 a 的代码位于 hangman() 的开头,所以它会在每次调用 main( )。将该代码移动到 main() 的开头,在 while 之前。

关于c - 为什么这段代码在每个循环中都重写 char 数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605811/

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