#include<stdio.h>
int main(){
int i,m=0,n=0,k=0;
char a[100];
gets(a);
for(i=0;i!='\0';i++)
if(a[i]>='a'&&a[i]<='z' || a[i]>='A'&&a[i]<='Z')
m++;
else
if(a[i]>='0'&&a[i]<='9')
n++;
else
k++;
printf("英文字母:%d,数字字符:%d,其他:%d",m,n,k);
}
你的for循环应该改成a[i]!='/0'