关于#数组#的问题,如何解决?

要求20个数据前十个和后十个分别逆序排列,前十个出来了,后十个一直是顺序的,采用头尾交换法

img

//仅供参考!

img

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void inSort(int *a, int n)
{
    int i, j, tmp;
    for (j = 1; j < n; j++)
    {
        tmp = a[j];
        i = j - 1;
        while (tmp > a[i])
        {
            a[i + 1] = a[i];
            i--;
            if (i == -1)
                break;
        }
        a[i + 1] = tmp;
    }
}

int main(int argc, char *argv[])
{
    int a[20], *p;
    //随机生成20个数
    srand(time(NULL));
    for (int i = 0; i < 20; i++)
    {
        a[i] = rand() % 100 + 1;
        printf("%4d", a[i]);
        if (i == 9)
            puts("");
    }
    puts("\n");
    p = &a[10];
    inSort(a, 10);
    inSort(p, 10);

    for (int i = 0; i < 20; i++)
    {
        printf("%4d", a[i]);
        if (i == 9)
            puts("");
    }
    puts("");

    return 0;
}

img