用switch语句编写一个程序以统计各个数字、空白字符及所有其他字符出现次数
空白字符包括空格,回车和tab键
#include <stdio.h>
int main()
{
int i, c, nwhite, nother, ndigit[10];
nwhite = nother = 0;
for (i = 0;i < 10; i++)
ndigit[i] = 0;
while ((c = getchar( )) != EOF)
{
switch (c)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
ndigit[c-'0']++;
break;
case ' ':
case '\n':
case '\t':
nwhite++;
break;
default:
nother++;
break;
}
}
printf("digits =");
for (i = 0;i < 10; i++)
printf(" %d",ndigit[i]);
printf(", white space = %d, other = %d\n",nwhite,nother);
return 0;
}
c经过getchar后输出的是输入字符的ASCII码,所有case’0’到case’9’后的nigit的[]中写c-'0’来表示1~9。
运行程序后输入答案时,注意要用英文输入,不能使用中文输入。
当我们输入答案完毕后,注意Windows系统与Linux系统差别:
Windows系统,先点击回车,然后按Ctrl+Z,再点击回车。
Linux系统,直接按Ctrl+D快捷键即可得出答案。
注意Windows系统Ctrl+Z前的回车也算一个空白字符。