当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

C++实现对数组的下标排序例子

    本文实现的功能是:ip转换为数值, 数值转换为ip,具体代码如下:

    在C++中,怎样实现对数组的下标排序呢?  以下是示例和具体实现方法:

    例如:

    const int array[6] = { 30, 10, 40, 4, 35, 45 };

    排序后的下标值是:

    int sort[6] = { 3, 1, 0, 4, 2, 5 };

    具体实现方法:

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

#define size 10
struct temp{
    int number;
    int index;
};
int main()
{
    int s[size];
    //通过随机数得到数组的初始值
    srand(time(NULL));
    struct temp tmp[size];
    for (int i=0;i < size; i++) {
        s[i] = rand() % 100;
        tmp[i].number = s[i];
        tmp[i].index = i;
    }
    printf("输入的数组是:\n");
    for (int i=0;i <size; i++) {
        printf(" %d ", s[i]);
    }
    for (int j=0;j <size;j++) {
        for (int i=size-2;i >= j;i--)
            if (s[i] > s[i+1])
            {
                int t=s[i];
                s[i]=s[i+1];
                s[i+1]=t;

                temp tt = tmp[i];
                tmp[i] = tmp[i+1];
                tmp[i+1] = tt;
            }
    }
    printf("\n数组排序后\n");
    for (int i=0;i < size;i++)
        printf(" %d ",s[i]);
    printf("\n排序后的数组下标值:\n");
    for (int i=0;i < size;i++)
        printf(" %d ",tmp[i].index);
}

    程序使用大小为10的数组,当然这个值随便你设定,排序得到数组下标排序的结果,输出如下:

    C++ 实现测试:

    输入的数组是:

    99  13  8  18  21  66  40  66  9  14

    数组排序后

    8  9  13  14  18  21  40  66  66  99

    排序后的数组下标值:

    2  8  1  9  3  4  6  5  7  0

相关内容
赞助商链接