在 C 中计算破折号以退出 While 循环
Posted
技术标签:
【中文标题】在 C 中计算破折号以退出 While 循环【英文标题】:Counting Dashes to Exit a While Loop in C 【发布时间】: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()
手册,并注意类型!
【参考方案1】:
问题在于您没有重置 dashcount
变量,因此每次它都从以前的值开始并在左侧添加破折号
for (i = 0; dash[i]; i++)
if (dash[i] == '-')
dashcount++;
您可以通过这种方式轻松解决此问题
dashcount=0;
for (i = 0; dash[i]; i++)
if (dash[i] == '-')
dashcount++;
【讨论】:
非常感谢!以上是关于在 C 中计算破折号以退出 While 循环的主要内容,如果未能解决你的问题,请参考以下文章
带有 Paramiko 的嵌套 SSH 退出 while 循环