来个人看看我哪错了:定义一个大小为10的整型一维数组,初始化所有数组元素,编程对中间的8个元素进行降序排序,即第一个和最后一个元素不参与排序

#include<stdio.h>
int main()
{
int a[10]={ 3,6,1,7,8,4,9,5,10,2}, i, j, k, t;
printf("数组中的初值是:\n");
for(i=0;i<10;i++)
{
printf("%-4d",a[i]);
}
for(i=1;i<7;i++)
{
for(j=1;j<7-i;j++)
{
if(a[j]>a[j-1])
{
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
}
printf("\n排序后的数组元素是:\n");
for(i=1;i<8;i++)
{
printf("%-4d",a[i]);
}
printf("\n");
return 0;
}

稍微改了下,你看看:

int main()
{
    int a[10]={ 3,6,1,7,8,4,9,5,10,2}, i, j, k, t;
    
    printf("数组中的初值是:\n");    
    
    for(i=0;i<10;i++)
    {
        printf("%-4d",a[i]);
    }
    
    for(i=1;i<9;i++)
    {
        for(j=i+1;j<9;j++)
        {
            if(a[j]>a[i])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    
    printf("\n排序后的数组元素是:\n");
    
    for(i=0;i<10;i++)
    {
        printf("%-4d",a[i]);
    }
    
    printf("\n");
    
    return 0;
}

供参考:

#include<stdio.h>
int main()
{
    int a[10] = { 3,6,1,7,8,4,9,10,5,2 }, i, j, k, t;
    printf("数组中的初值是:\n");
    for (i = 0; i < 10; i++)
    {
        printf("%-4d", a[i]);
    }
    for (i = 1; i < 9; i++)//修改
    {
        for (j = 1; j < 9 - i; j++)//修改
        {
            if (a[j] > a[j + 1])//修改
            {
                t = a[j];
                a[j] = a[j + 1];//修改
                a[j + 1] = t;//修改
            }
        }
    }
    printf("\n排序后的数组元素是:\n");
    for (i = 1; i < 9; i++) //修改
    {
        printf("%-4d", a[i]);
    }
    printf("\n");
    return 0;
}

你的代码主要是数组排序区间错误

对8个元素排序,for循环不应该是i=1;i<9;i++吗