题目:输入n个字符,统计其中特定类型字符(字母、空格、数字以及其他字符)出现的个数。
疑惑点:为啥我输出显示的最后一个字符都是属于“其他字符”类别?还望各位指教指教~帮我看看问题所在。
(注:后来我测试了下,最后一个字符被统计时,被认定是“回车符”,所以归“其他字符”类别)
我写的代码如下:
#include<stdio.h>
int main(){
char a;//输入的字符
int n;//字符输入的次数
scanf("%d",&n);
int l=0,b=0,d=0,o=0;
//分别统计“字母、空格、数字以及其他字符”出现的个数
while(n)//循环输入n次字符
{
scanf("%c",&a);
if((a>='a'&&a<='z')||(a>='A'&&a<='Z'))l++;
//判断该字符是否为字母
else if(a==' ')b++;
//判断是否为空格
else if(a>='0'&&a<='9')d++;
//判断是否为数字
else o++;
//判断是否为其他字符
n--;
//每输入一次,就减少一次输入次数
}
printf("letter = %d, blank = %d, digit = %d, other = %d",l,b,d,o);
//最终输出各类型字符出现个数
return 0;
}
运行测试例子:
①
输入:
10
abC(空格字符)24&qd5
输出:
letter = 5, blank = 1, digit = 2, other = 2
②
输入:
5
17q#D
输出:
letter = 1, blank = 0, digit = 2, other = 2
想问问究竟是哪里出了问题,还望各位帮忙看看,万分感谢了!