这个输出a e i o u 程序
#include <stdio.h>int main()
{
char ch;
int a, e, i, o, u;
a = 0;
e = 0;
i = 0;
o = 0;
u = 0;
printf("请输入一个英文句子:");
while ((ch = getchar()) != '\n')
{
switch (ch)
{
case 'a':
case 'A': a++;
break;
case 'e':
case 'E': e++;
break;
case 'i':
case 'I': i++;
break;
case 'o':
case 'O': o++;
break;
case 'u':
case 'U': u++;
break;
}
}
printf("您输入的句子中,包含元音字母%d个!\n", a + e + i + o + u);
printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)\n", a, e, i, o, u);
return 0;
}
为什么是case'A': a++而不是case 'a': a++呢 case 'a':
case 'A': a++;
break;
这不是指明了 大写A,和小写a ;都 a++ 吗? ba21 发表于 2017-10-28 12:14
case 'a':
case 'A': a++;
break;
这样写的意思是两个都a++吗,如果我这样写case'a':a++
case'A' : a++ 算不算重复,或者两者等价 高山流水i 发表于 2017-10-28 12:26
这样写的意思是两个都a++吗,如果我这样写case'a':a++
...
可以! 高山流水i 发表于 2017-10-28 12:26
这样写的意思是两个都a++吗,如果我这样写case'a':a++
...
switch语句中,不加break会顺序执行下去,所以原代码表示遇到大小写的a都自增
但是如果要改为
case 'a': a++;
case 'A': a++;
这种形式,那么在case 'a': a++;后面应该加上break语句,否则遇到小写a会被自增两次 BngThea 发表于 2017-10-28 16:48
switch语句中,不加break会顺序执行下去,所以原代码表示遇到大小写的a都自增
但是如果要改为
case 'a' ...
那大写'A'后面也要加break; 是吧? 高山流水i 发表于 2017-10-29 20:19
那大写'A'后面也要加break; 是吧?
当然,你原来的程序中就有
页:
[1]