数组排序,并返回排序后的数组对应原数组的下标(c语言)

来源:互联网 发布:上海网络通信设备公司 编辑:程序博客网 时间:2024/06/03 10:39
#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;
}
1 0
原创粉丝点击