【问题标题】:programming hangman in c用c编程刽子手
【发布时间】:2014-05-17 14:45:24
【问题描述】:

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

【问题讨论】:

  • 整理回车键和缩进。给调试器一个拥抱,学会爱它。作为一名程序员,你刚刚结婚。只需完成婚姻并使用它!

标签: c arrays function if-statement


【解决方案1】:

更改您的代码..

scanf(" %c",&letter);
 //    ↑
 // Space before `%c`

因为当您读取带有scanf() '\n' 的值时,您通过按Enter key 留下未读值。要忽略'\n',您必须读取带有“%c”的字符(%c 之前的空格)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多