のforループとif文で何らかの理由でif文が互いに逆であっても、なぜそれが実行されているのかわかりません。私はさまざまな方法で試しましたが、それでも同じように出てきます。のハングマンプログラムの問題
#include <stdio.h>
#include <stdlib.h>
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;
}
は、コードレビューをしてみたり、最小限の問題にこれを蒸留。 –
最初の 'if'で' secretword'を変更しています。たぶん2番目の 'if'は' else'でしょう。 –
気をつけろ!間違った引数でscanfを使用しています!ポインタをポインタに渡していて、ポインタを渡したいとします。これは数回発生します... – guga