我想創建一個hang子手遊戲。我使用''字符填充字符數組,而不是掃描用戶的字符,如果字符與任何帶有先前定義的字符的字符相匹配,則將''字符替換爲正確的字母。爲什麼這段代碼重寫每個循環中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]) ;
}
}
看來部分來源缺失。 – BLUEPIXY
這不會編譯。 –
每次用'a [i] ='_'調用hangman()時,都會覆蓋[i]; ',你只需要在安裝過程中做一次,然後再索要猜測:-) – flob