1. 程式人生 > >陣列排序,並返回排序後的陣列對應原陣列的下標(c語言)

陣列排序,並返回排序後的陣列對應原陣列的下標(c語言)

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


void sort(int* a, int length, int* b)
{
    int i,j, t1, t;
    for(j=0; j<length; j++)
        for(i=0; i<length-1-j; i++)
            if(a[i]<a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;


                t1=b[i];
                b[i]=b[i+1];
                b[i+1]=t1;
            }
}


int main()
{
    int a[] = {0,0,3,0,4,0,0};
    int b[7] = {0,1,2,3,4,5,6};//用來儲存原陣列對應的下標以及排序後的下標
    sort(a, 7, b);
    printf("排序後的陣列為:\n");
    for(int i=0; i<7; i++)
        printf("%d ",a[i]);
    printf("\n");

   printf("排序後的陣列對應的下標:\n");
    for(int i=0; i<7; i++)
        printf("%d ",b[i]);
    printf("\n");
    return 0;
}