本文实现的功能是: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