c - 用c语言编程刽子手

标签 c arrays function if-statement

编写一个玩刽子手游戏的交互式程序。将单词(单个单词,而不是多个单词)存储在称为单词的字符数组中。创建一个名为“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/

相关文章:

c - 为什么我的 for 循环无限运行?

javascript - 如何循环遍历数组并查找与数组中的值匹配的内容

sql - PostgreSQL 函数从动态表名称返回结果集

javascript - 我找不到函数名

javascript - jquery 输入 keyup 函数不起作用

c - 在 Visual Studio 2008 Professional 中使用 timeGetTime() 时出现问题

c - 在线程之间划分工作? (并行线程)

c - vfork 调用后的奇怪输出

c - 如何使用未知维度的二维数组?

c - 在 for 循环中使用关系运算符测试指针