在for循环,并在if语句,由于某种原因,它通过两个if语句,即使它们是彼此相反的,我不知道它为什么这样做。我尝试过不同的方式,它仍然以相同的方式出现。麻烦刽子手程序在C
#include
#include
int main()
{
char secretword[20] = {};
char alphabet[28] = {"abcdefghijklmnopqrstuvwxyz "};
char guess[2] = {};
int i = 0, k = 0;
int seclength = 0, alphlength = 0;
int GuessCtr = 6;
printf("You Get six chances to guess all of the letters in a phrase\n");
printf("Enter the secret word/phrase: ");
scanf("%s", &secretword);
seclength = strlen(secretword);
alphlength = strlen(alphabet);
while(GuessCtr != 0)
{
printf("Past guesses: ");
for(i = 0; i < alphlength; i++)
{
printf("%c", alphabet[i]);
}
printf("\n");
printf("Guess a character: ");
scanf("%s", &guess);
printf("\n");
for(i = 0; i < seclength; i++)
{
if(secretword[i] == guess[0])
{
secretword[i] = '*';
}
/*else
{
GuessCtr--;
printf("You missed - you have %d wrong guesses left!", GuessCtr);
}*/
if(secretword[i] != guess[0])
{
GuessCtr--;
printf("You missed - you have %d wrong guesses left!", GuessCtr);
}
}
for(i = 0; i < seclength; i++)
{
printf("%c", secretword[i]);
}
printf("\n");
for(i = 0; i < alphlength; i++)
{
if(alphabet[i] == guess[0])
{
alphabet[i] = '*';
}
}
}
printf("You suck!");
return 0;
}
2012-03-15
CRS
+1
尝试代码审查或蒸馏这一个最小的问题。 –
2012-03-15 22:05:12
+0
你在第一个if语句中改变'secretword'。也许第二个'if'应该是'else'。 –
2012-03-15 22:06:48
+0
小心!您正在使用带有错误参数的scanf!您将指针传递给一个指针,并且您想传递一个指针。这发生了几次... –
2012-03-15 22:31:59