编写一个玩刽子手游戏的互动程序。将单词(单个单词,而不是多个单词)存储在一个名为word的字符数组中。创建一个名为猜测的并行数组,其中有*代替字母。如果玩家猜对了,就把这个字母放到猜测的数组中。给玩家5个错误的猜测来找出这个词。假设单词不超过20个字符。
所以我的程序正在编译,除了if语句之外的所有语句都出错了,它一直向我显示两个语句继续运行并再次尝试。
#include <stdio.h>
#include <conio.h>
//function prototypes
void game(char [], char []);
int main()
{
char word[20] = {'d', 'u','c','k'};
char guessed[20];
game(word,guessed);
getch();
return 0;
}
void game(char answer[], char guess[])
{
int x = 0;
char letter;
while (x < 6)
{
scanf("%c",&letter);
if (letter == answer[x])
{
guess[x]= letter;
printf("keep going\n");
}
else
{
printf("Try again\n");
}
++x;
}
}
答案 0 :(得分:1)
更改代码..
scanf(" %c",&letter);
// ↑
// Space before `%c`
因为当您阅读scanf()
'\n'
左侧未读的值时,按Enter key
即可留下。要忽略'\n'
,你必须用&#34; %c&#34;(%c之前的空格)