C编程:一个简单的倒计时程序

时间:2016-04-13 16:42:54

标签: c if-statement while-loop char scanf

我试图制作一个与倒计时电视节目相关的简单节目。我只是开始这样做,所以我的问题从一开始。当我要求用户为辅音或元音输入c或v时,我只是检查它是否返回是,否或请再试一次。这有效,但它直接重复,返回请再试一次。我觉得这是一个简单的问题,但我不知道它是什么。

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int test(int count, char lett);

int main()
{
    int i, counter;
    char letter;
    //char *fileName = "webster.txt";

    printf("Welcome to Countdown!\n\n");
    printf("The objective of the game is to produce the largest word from the nine letter(consonants and/or vowels) that are chosen at random by you. ");
    printf("The computer will then find the longest word available from these letters to compare with your word.\n");
    printf("Let's begin!\n");

    counter = 0;

    while (counter < 9) {
        printf("\nWould you like a consonant or a vowel(Enter either c or v)? ");
        scanf_s("%c", &letter);

        test(counter, letter);

    }

    return 0;
}

int test(int count, char letter)
{
    if (letter == 'c') {
    printf("yes\n");
    count++;
    }
    else if (letter == 'v') {
        printf("no\n");
        count++;
    }
    else {
        printf("Please try again\n");
    }

    return count, letter;
}

2 个答案:

答案 0 :(得分:1)

在我看来,您不会考虑输入中的新行字符,并且它也会通过您的子例程发送。添加else if子句以测试\n,并相应地处理它。

您的C上面还有其他一些问题,但据我所知,这是与问题相关的问题。

答案 1 :(得分:0)

NUIGProbz

你需要基本上创建一个包含9个字母的数组,初始化为NULL, 创建v和c的arr,让用户选择他们的字母,直到9个字母数组已满,打印出字母,让用户输入单词,交叉引用字典,如果单词存在,则打印出他们的分数。 / p>