C语言插入一个数字到数组中,然后排序 麻烦各位解答一下 看代码

int i,j,temp;
int count[9];
printf("请输入数值:\n");
for(i=1;i<=8;i++)
{
    printf("count[%d]=",i);
    scanf("%d",&count[i]);
}
for(i=1;i<=8;i++)
{
    for(j=i+1;j<=8;j++)
    {
        if(count[j]>count[i])
        {
            temp=count[i];
            count[i]=count[j];
            count[j]=temp;
        }
    }
}
printf("排序后:");
for(int k=1;k<=8;k++)
{
    printf("%d ",count[k]);
}
printf("\n");
printf("插入一个数字:");
int num;//要插入的数字
int index;//插入数字的下标
scanf("%d",&num);

//程序走到这里就不走了 这是怎么回事 麻烦各位指教
for(i=1;i<=8;i++)
{
if(num>count[i] && num<=count[i+1])
{
index=i;
break;
}
}
printf("%d",index);
for(i=8;i>index;i--)
{
count[i+1]=count[i];
}
count[i]=num;//把num插入到数组里面
printf("插入数字后排序的结果:");
for(i=1;i<=9;i++)
{
printf("%d",count[i]);
}
printf("\n");
}

麻烦各位了

 for(i=1;i<=8;i++)
{
    if(num>count[i] && num<=count[i+1])//这里不对,当i=8时,count[i]就出界了
    {
        index=i;
        break;
    }
}

改为:
for(i=1;i<=8;i++)
{
    if(num<count[i] )
    {
        index=i;
        break;
    }
}

 改为:
for(i=1;i<=8;i++)
{
    if(num>count[i] )//你是由大到小排列,应该用大于
    {
        index=i;
        break;
    }
}

11111111111111111111111111111