gpt4 book ai didi

c - 我的 for 循环出了什么问题?当我在 C 语言的字母猜谜游戏中只输入 1 个输入时,它会转 2 次

转载 作者:行者123 更新时间:2023-11-30 19:03:20 24 4
gpt4 key购买 nike

我知道这段代码尚未完成,但由于这个问题我无法进一步进行。

如果您使用任何编译器执行代码,您都会看到它。

在控制台写入指令后,当您输入一个单词时,循环需要两轮。当机会应该是 1 时,它也减少了 2 倍。为什么呢?

我正在使用 devc++ 和 windows。

#include<stdio.h>
#include<stdlib.h>

int main(){
int i,j,totalTrial=6,currentTrial=0;
char myWord [6]={'d','o','c','t','o','r'};
char lineArray [6]={'-','-','-','-','-','-'};
char guess;

printf("Hello,this is a simple word-guessing game. Try to find my secret word. You have 6 chances.");

printf("Lets begin!!\n");

printf("Word:\n------\n");

for(i=0;i<=6;i++)
{
printf("\nGuess a letter: ");
scanf("%c",&guess);

for(j=0;j<7;j++)
{

if(guess==myWord[j])
{
lineArray[j]=guess;
}
}

currentTrial++;
printf("\nResult: %s, %d hakkin kaldi.\n",lineArray,totalTrial-currentTrial);
}

getch();
return 0;
}

最佳答案

发生这种情况是因为 scanf() 正在从输入缓冲区读取杂散的 \n(换行符)。 [当您进行输入时,必须输入一个字符,然后按 ENTER 键。]

要解决此问题,请在 scanf() 中的 % 字符前添加一个空格,如下所示:

scanf(" %c", &guess);

这将跳过前导空白字符(包括换行符)并读取用户给出的输入。

关于c - 我的 for 循环出了什么问题?当我在 C 语言的字母猜谜游戏中只输入 1 个输入时,它会转 2 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54083981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com