Сортировка массива по другому массивуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Сортировка массива по другому массиву

Сообщение Anonymous »

У меня есть массив из двух элементов. Теперь я хотел бы отсортировать все значения, заканчивающиеся на ноль (например, arr[3][0], arr[1][0]), чтобы они были отсортированы от меньшего к большему.

Затем я хотел бы, чтобы значения, заканчивающиеся на 1 (например, arr[2][1], arr[1][1]), также сортировались, но не в своем собственном порядке, а в тот же порядок, что и первый массив.

Вот что я пробовал:

int compareInts(const void* a, const void* b)
{
return ( *(int*) a[0] - *(int*) b[0] );
}

int arr[4][2];

arr[0][0] = 50;
arr[0][1] = 0;

arr[1][0] = 40;
arr[1][1] = 1;

arr[2][0] = 50;
arr[2][1] = 2;

arr[3][0] = 85;
arr[3][1] = 3;

qsort( arr, 4, sizeof(int), compareInts );


Мне хотелось бы получить следующий результат:

arr[0][0] = 40;
arr[0][1] = 1;

arr[1][0] = 50;
arr[1][1] = 0;

arr[2][0] = 50;
arr[2][1] = 2;

arr[3][0] = 85;
arr[3][1] = 3;


Подробнее здесь: https://stackoverflow.com/questions/566 ... ther-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»