【发布时间】:2020-09-28 06:14:25
【问题描述】:
我使用 while 循环制作了一个刽子手游戏。我想使用破折号的数量 == 0 来打破循环,这样玩家就知道他们赢了。这个词隐藏在“-”后面。我的词是编码,所以它有 6 个破折号。
当我运行程序时,对这个词的第一个猜测是准确的破折号数。但是在第二次猜测之后,以此类推,它将所有猜测中的所有破折号加在一起,而不仅仅是那一回合。到第三回合,它说我有 9 个破折号,因为这就是所有回合中剩下的数量。关于如何解决的任何想法?
char word[] = { "Coding" };
char dash[] = {"------"};
char guess;
int numguesses = 10;
int count;
int loopcount;
int i;
int dashcount;
int main()
{
printf("Your Word Is: %s", &dash);
//printf("\nWord: %c", &dash);
loopcount = 10;
count = 1;
while (count <= loopcount)
{
printf("\n\nPick a letter to guess: ");
scanf(" %c", &guess);
printf("\n\nYour Guess Was %c. ", guess);
count = count + 1;
if (guess == 'c')
{
dash[0] = 'c';
printf("\n\n %s", dash);
}
else if (guess == 'o')
{
dash[1] = 'o';
printf("\n\n %s", dash);
}
else if (guess == 'd')
{
dash[2] = 'd';
printf("\n\n %s", dash);
}
else if (guess == 'i')
{
dash[3] = 'i';
printf("\n\n %s", dash);
}
else if (guess == 'n')
{
dash[4] = 'n';
printf("\n\n %s", dash);
}
else if (guess == 'g')
{
dash[5] = 'g';
printf("\n\n %s", dash);
}
else
printf("That Letter Is Not Apart of this Word");
printf("\n\nYou are at Guess Number %d, Your word is at %s", count, dash);
for (i = 0; dash[i]; i++)
{
if (dash[i] == '-')
{
dashcount++;
}
}
printf("\n\nDoes it work ?: %d", dashcount);
}
if (count < numguesses)
{
printf("\n\n\nYou Won the Game, Your Awesome!!");
}
else
{
printf("\n\n\nI'm Sorry, the word was %s.", word);
}
printf("\n\n");
return 0;
}
【问题讨论】:
-
printf("Your Word Is: %s", &dash);阅读手册。 -
@Sourav Ghosh 什么手册?
-
printf()手册,并注意类型!
标签: c