我试图制作一个与倒计时电视节目相关的简单节目。我只是开始这样做,所以我的问题从一开始。当我要求用户为辅音或元音输入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;
}
答案 0 :(得分:1)
在我看来,您不会考虑输入中的新行字符,并且它也会通过您的子例程发送。添加else if子句以测试\n
,并相应地处理它。
您的C上面还有其他一些问题,但据我所知,这是与问题相关的问题。
答案 1 :(得分:0)
你需要基本上创建一个包含9个字母的数组,初始化为NULL, 创建v和c的arr,让用户选择他们的字母,直到9个字母数组已满,打印出字母,让用户输入单词,交叉引用字典,如果单词存在,则打印出他们的分数。 / p>