scanf 里面要原样输入,你如果选D就要输入 a=1这些
C其实题目打印的有问题,它的格式化字符串是对的,后面变量错了
int main() {
char c=0;
while(scanf("%c",&c)!=EOF)
{
getchar();//注意scanf输入字符和输入数字可是不一样的哦,一个会忽略\n,一个并不会忽略\n哦
if(c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U')
{
printf("Vowel\n");
}
else
{
printf("Consonant\n");
}
}
return 0;
}
大家要知道,我们在scanf中输入我们数据结束之后,其实都是以输入回车来作为输入结束标志的。我们也知道这个回车其实也是一个字符,所以,我们在实现多组输入时,总是会遇到解决字符的问题,所以我们为了程序的功能实现,要把\n用getchar吸收掉
根据参考资料,这个问题可能是因为scanf函数输入字符类型数据时,并不会跳过空格,而输入其他类型的数据时会跳过空格。所以建议在输入字符类型数据时,在格式字符串后加上一个getchar函数,将输入的换行符吸收掉。
具体修改方法:假设需要输入一个字符型变量c,可将原来的代码:
scanf("%c", &c);
修改为:
scanf("%c", &c); getchar();
如果还是不能解决问题,建议在问题描述中提供具体的代码和输入结果,以便更好地定位问题所在。