帮看看逻辑问题,为什么运行无结果,还有就是什么叫放在数组中作为函数的参数返回

img


#include"stdio.h"
void c(char a[]);
int main()
{
char a[80],b[80];
scanf("%s",a);
c(a);
}
void c(char a[])
{
int i,j;
char b[80];
while(a[i]!='\0')
{
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
{
while(b[j]!='\0')
{
b[j]=a[i];
j++;
}
}
i++;
}
printf("%s",b);
}


#include"stdio.h"
void c(char a[],char*b);
int main()
{
char a[80],b[80];
scanf("%s",a);
c(a,b);
printf("%s",b);
}
//b作为函数形式参数,在c函数里修改b,main函数里b也会改变
void c(char a[],char*b)
{
int i,j;
i=0;
j=0;
while(a[i]!='\0')
{
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
{
    //a[i]是元音字母则拷贝到b[j]
    b[j]=a[i];
    j++;
}
i++;
}
b[j]='\0';
}