编写一个玩刽子手游戏的交互式程序。将单词(单个单词,而不是多个单词)存储在称为单词的字符数组中。创建一个名为“guessed”的并行数组,其中用 * 代替字母。如果玩家猜对了,则将字母放入猜测的数组中。给玩家 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;
}
}
最佳答案
更改您的代码..
scanf(" %c",&letter);
// ↑
// Space before `%c`
因为当您使用 scanf()
读取一个值时,'\n'
未读,您可以通过按 Enter 键
留下该值。要忽略'\n'
,您必须读取带有“%c”的字符(%c 之前有空格)
关于c - 用c语言编程刽子手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22877160/