我感觉我写的没错啊,怎么运行结果不对呢,来个人帮

#include<stdio.h>
#include<string.h>
void fun(char a[],int b[])
{
int m;
for(m=0;m<6;m++)
{
switch(a[m])
{
case 'a':b[0]++;break;
case 'b':b[1]++;break;
case 'c':b[2]++;break;
case 'd':b[3]++;break;
case 'e':b[4]++;break;
default:b[5]++;break;
}
}
}
void main()
{
int i,b[6];char a[100]="bacdlb+ddep";
fun(a,b);
printf("The result is:");
for(i=0;i<6;i++)
{printf("%d",b[i]);}
printf("\n");
}

因为数组b没有初始化,所以把数组b初始化为0,但不知道是不是你想要求解的那种方案,修改如下:

#include<stdio.h>
#include<string.h>
void fun(char a[],int b[])
{
    int m;
    for(m=0;m<6;m++)
    {
        switch(a[m])
        {
            case 'a':b[0]++;break;
            case 'b':b[1]++;break;
            case 'c':b[2]++;break;
            case 'd':b[3]++;break;
            case 'e':b[4]++;break;
            default:b[5]++;break;
        }
    }
}
int main()
{
    int i,b[6]={0};char a[100]="bacdlb+ddep";
    fun(a,b);
    printf("The result is:");
    for(i=0;i<6;i++)
    {
        printf("%d",b[i]);
    }
    printf("\n");
    
}

img