用%c输入二位字符数组问题。

#include
int main()
{char a[3][5];
int i,j,z=0,s=0,k=0,o=0;
for(i=0;i for(j=0;j scanf("%c",&a[i][j]);
for(i=0;i for(j=0;j {
if((a[i][j]>='a'&&a[i][j]<='z')||(a[i][j]>='A'&&a[i][j]<='Z')) z++;
else if(a[i][j]>='0'&&a[i][j]<='9') s++;
else if(a[i][j]==' ') k++;
else o++;
}
printf("字母个数为%d\n数字个数为%d\n空格个数为%d\n其他字符个数为%d\n",z,s,k,o);
return 0;
}

运行出来的结果其他字符个数总是不正确
还有用%c输入时输入的个数必须满所定义的a[3][5]也就是15个么?

你这个代码是要干啥?

#include<stdio.h>
int main()
{
    char a[3][5];
    int i,j,z=0,s=0,k=0,o=0;
    for(i=0;i<3;i++)
    {
        for(j=0;j<5; j++)
        {
            scanf("%c",&a[i][j]);
        }
    }

    for(i=0;i<3;i++)
    {
        for(j=0;j<5; j++)
        {
            if((a[i][j]>='a'&&a[i][j]<='z')||(a[i][j]>='A'&&a[i][j]<='Z')) 
                z++;
            else if(a[i][j]>='0'&&a[i][j]<='9')
                s++;
            else if(a[i][j]==' ') 
                k++;
            else 
                o++;
        }
    }
    printf("字母个数为%d\n数字个数为%d\n空格个数为%d\n其他字符个数为%d\n",z,s,k,o);
    return 0;
}

楼上正解,不过按照楼上的代码的话确实要输够十五个,因为循环次数就是那么多,可以输入行数列数接收,让for语句按照行数列数来循环。

楼上正解,不过按照楼上的代码的话确实要输够十五个,因为循环次数就是那么多,可以输入行数列数接收,让for语句按照行数列数来循环。

楼上正解,不过按照楼上的代码的话确实要输够十五个,因为循环次数就是那么多,可以输入行数列数接收,让for语句按照行数列数来循环。