我的思路是:进入for循环,输入值再进行判断,再输出
代码
#include
int main()
{
int l=0,b=0,d=0,o=0,n,i=0;
scanf("%d",&n);
char c;
for(i=0;i
{
scanf("%c",&c);
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) l++;
else if(c==' '||c=='\n')b++;
else if(c>='0'&&c<='9')d++;
else o++;
}printf("letter = %d, blank = %d, digit = %d, other = %d",l,b,d,o);
return 0;
}
第一个scanf("%d",&n);后,缓冲区残留\n给第一次scanf("%c",&c);读取了。
你可以新建个char数组存储每次获取c的值,就知道了。
for循环上面加上getchar();清掉残留的\n。
什么地方错了