#include <stdio.h>
int main(void)
{
char ch;
//character = ch
printf("Please type a character [A-Z or a-z] ('x'to exit):");
scanf("%c", &ch);
switch(ch) //switch statement
{
case 'a':
printf("%c is a vowel.\n", ch);
break;
case 'e':
printf("%c is a vowel.\n", ch);
break;
case 'i':
printf("%c is a vowel.\n", ch);
break;
case 'o':
printf("%c is a vowel.\n", ch);
break;
case 'u':
printf("%c is a vowel.\n", ch);
break;
case 'A':
printf("%c is a vowel.\n", ch);
break;
case 'E':
printf("%c is a vowel.\n", ch);
break;
case 'I':
printf("%c is a vowel.\n", ch);
break;
case 'O':
printf("%c is a vowel.\n", ch);
break;
case 'U':
printf("%c is a vowel.\n", ch);
break;
default:
if(ch != 'x'){
printf("%c is a consonant.\n", ch);
break; }
else if(ch == 'x'){
printf("%c is a consonant.\n", ch);
break; }
}
我在使用此代码方面遇到了很多麻烦。我有它完美,但它需要不断重复,直到输入'x'。尝试了一个循环,没有任何运气,只是最近尝试了默认情况下的if语句,这也不起作用。如果有人能给我一点见解,我会非常接近!
答案 0 :(得分:7)
你不需要这么重复自己。您可以为给定的案例使用多个标签:
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
printf("%c is a vowel.\n", ch);
break;
default:
printf("%c is a consonant.\n", ch);
break;
你需要一个循环:
do
{
printf(...)
scanf(...)
switch (...)
{
...
}
} while (ch != 'x');
在执行isalpha
之前,您可能希望在其中添加switch
来电。
答案 1 :(得分:0)
while(ch != 'x'){
...
...
}
或者你可以做一个功能菜单方法
void runMenu(){
// do stuff
runMenu();
}
我会看看@Carl Norum的代码优化答案!