#include <stdio.h>
void main()
{
char ch;
int c=0,d=0;
printf("请输入字符\n");
while(1)
{
scanf("%c",&ch);
if(ch=='?')
break;
if(ch>'a'&&ch<'z')
c++;
else if(ch>'0'&&ch<'9')
d++;
}
printf("%d,%d\n",c,d);
}
void main()
{
char ch;
int c=0,d=0;
printf("请输入字符\n");
while(1)
{
scanf("%c",&ch);
if(ch=='?')
break;
if(ch>'a'&&ch<'z')
c++;
else if(ch>'0'&&ch<'9')
d++;
}
printf("%d,%d\n",c,d);
}
因为循环是一次一次进行的, 你循环是每次读取一个char字符然后后面有三个条件语句的判断
你也可以尝试使用编译器的调试进行单步调试即可查看为什么是一个一个字符进行的