麻烦大家帮我看一下这段代码有啥错误?

图片说明

 #include<stdio.h>
int b[100],c[100],x;
void input(int a[],int n)
{printf("输入数组a<10个元素>:");
for(int i=0;i<n;i++)
scanf("%c",&a[i]);}
void insert(int a[],int n,int x)
{for(int i=0;i<n;i++)
if(x<b[i]&&x<b[i+1]) break;
for(int j=0;j<i+1;j++)
c[j]=b[i];
c[i+1]=x;
for(int z=i+2;z<n+1;z++)
c[z]=b[z-1];
}
void output(int a[],int n)
{for(int i=0;i<n;i++)
printf("%d ",c[i]);
}
int main()
{input(b,10);
printf("输入数组b<5个元素>:");
for(int i=0;i<5;i++)
{scanf("%d",&x);
insert(b,10,x);
}
output(c,15);
return 0;
}
 #include<stdio.h>

void input(int a[],int n)
{
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);//修改
}
void insert(int a[],int n,int x)
{
    int i,te;
    for( i=0;i<n;i++)
        if(x<a[i]) break;
    for(int j=i;j<n+1;j++)
    {
        te=a[j];
        a[j]=x;
        x=te;
    }
}
void output(int a[],int n)
{
    for(int i=0;i<n;i++)
        printf("%d ",a[i]);//修改
}

int main()
{
    int b[100],c[5];

    printf("输入数组a(10个元素):");
    input(b,10);

    printf("输入数组b(5个元素):");
    input(c,5);

    for(int i=0;i<5;i++)
    {
        insert(b,10+i,c[i]);//修改
    }
    output(b,15);//修改
    printf("\n\n");
    return 0;
}

错误很多:

 for(int i=0;i<5;i++)
{scanf("%d",&x);
        insert(b,10,x);//始终是向b数组插入x,不对。
}
 if(x<b[i]&&x<b[i+1]) break;
 改为:
 if(x>=b[i]&&x<b[i+1]) break;