这个函数怎么出不了值啊 不理解

#include<stdio.h>
int main()
{
int a[6],b[7],j,k=0,t,g,d,i,x,u;
for(i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("\n");
scanf("%d",x);
for(j=0;j<7;j++)
{
if(j<6)
{
b[j]=a[k];
k++;
}
if(j>5)
b[j]=x;
}
for(j=0;j<7;j++)
printf("%d",b[j]);
for(d=0;d<7;d++)
{
for(g=0;g<7-d;g++)
{
if(b[g]>b[g+1])
{
t=b[g];
b[g]=b[g+1];
b[g+1]=t;
}
}
}
for(u=0;u<7;u++)
printf("%d",b[u]);
return 0;
}
题目如下输入一些正整数,按从小到大排序,然后插入一个正整数,保持这些正整数有序。(输入66 34 27 88 20 55,插入:33,输出:20 33 34 55 66 88)


for(g=0;g<7-d;g++)
{
if(b[g]>b[g+1])

b[g+1]越界了,改成g<6-d试试

先排序,后插入