题目如下
---------------------------------------------------------------------------------------------------------------------------------
题目讲解(思路)
---------------------------------------------------------------------------------------------------------------------------------
当我们要判断一个字母是不是元音时,相信大多数人第一反应会用或者操作符( || )来进行代码实现,但是这道题目中我们并不选择这么做,因为用或者操作符代码太冗长
我们可以把所有元音字母放进一个数组中,最后判断输入字母在不在数组中即可
代码如下
#include<stdio.h>
int main()
{
char zi[] = "AEIOUaeiou"; //元音数组
char x = '0';
int i = 0;
while(scanf(" %c",&x)!=EOF){
for(i=0;i<10;i++){
if(x==zi[i]){
printf("Vowel\n");
break;
}
}
if(zi[i] == '\0'){
printf("Consonant\n");
}
}
}
---------------------------------------------------------------------------------------------------------------------------------
末尾讲解
---------------------------------------------------------------------------------------------------------------------------------在最后出现的if语句中,判断数组是不是为'\0',是因为当我们将字符串存入数组中,会在字符串的尾部自动存入一个 '\0' 以表示字符串结束,即 初始化时令zi[10] = '\0'
并且在for循环进行结束时,如果是元音的话 i 的值是不可能为10的,最多为9,只有在元音数组中找不到时,i 才会变为10