您的位置:首页 > 编程语言 > C语言/C++

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

2015-10-20 15:18 525 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息