定义数组时必须初始化吗
输入一行字符,分别统计出其中英文字母、空格、 数字和其它字符的个数 都是错的,求解正确的#include <stdio.h>
int main(){
int i,j;
char a[];
int num=0,num1=0,num2=0,num3=0;
scanf("%d",&i);
printf("输入一行字符:\n");
for(j=0;j<i;j++){
scanf("%c",&a[j]);
//for(j=0;j<i;j++){
if((a[j]>='a'&&a[j]<='z')||(a[j]>='A'&&a[j]<='Z'))
num++;
else if(a[j]==' ')
num1++;
else if(a[j]>=0&&a[j]<=9)
num2++;
else
num3++;
}
printf("英文字母%d个,空格%d个,数字%d个,其他字符%d个\n",num,num1,num2,num3);
return 0;}