【发布时间】:2014-07-04 04:43:33
【问题描述】:
好的,这是我的代码。我应该制作一个程序,向一个玩家询问一个单词并要求另一个玩家找到它,一次猜测一个字母。所以基本上,刽子手。我的问题是:
当我尝试将SCounter 变量增加一时,它会增加到随机数。我已经尝试过思考它,但我不知道为什么。例如,当猜测词为Kala(希腊语为“Good/Fine”)时,当我在第一个字母之后输入guess any letter 时,SCounter 等于错误的字母数量。
我的第二个问题是关于guess。我的程序只有在我写char guess[2] 时才有效。当我写char guess[0] 时,它会永远循环。我不明白为什么。
int main(int argc, char *argv[]) {
SetConsoleOutputCP(1253);
int i = 0;
start :printf("Enter the guess word: ");
char word[25], sword[25];
char guess[2];
char alphabet[28] = {"abcdefghijklmnopqrstuvwxyz "};
int Counter = 6;
int SCounter = 0;
gets(word);
for (i=0; i<strlen(word); i++){
sword[i]='-';
}
while(Counter != 0)
{
printf("So far: ");
for(i = 0; i < strlen(alphabet); i++)
{
printf("%c", alphabet[i]);
}
printf("\n");
printf("Guess a character: ");
gets(guess);
printf("\n");
for(i = 0; i < strlen(word); i++)
{
if(word[i] == guess[0])
{
sword[i] = guess[0];
}
/*else
{
Counter--;
printf("You only have %d wrong guesses left.\n", Counter);
}*/
}
for(i = 0; i < strlen(sword); i++)
{
if (word[i]==sword[i]){
SCounter++;
}
printf("%c", sword[i]);
}
printf("\n");
printf("%d letters found so far.", SCounter);
printf("\n");
for(i = 0; i < strlen(alphabet); i++)
{
if (strlen(guess)<2)
{
if(alphabet[i] == guess[0])
{
alphabet[i] = '-';
}
}
}
if (SCounter == strlen(word)){
Counter = 0;
}
if (strcmp(word, sword)==0){
printf("Congratulation Player 1! You win!\n");
goto start;
}
}
return 0;
}
【问题讨论】:
-
char guess[0] 声明一个长度为零的字符串。这似乎不是很有用。你说“当我尝试将 SCounter 变量增加一时,它会消失”......“变量消失”实际上是什么意思?
-
我实际上忘记正确结束措辞哈哈。我会编辑它。
标签: c