У меня есть массив с массивами из двух элементов. Теперь я хотел бы отсортировать все значения, заканчивающиеся на ноль (например, 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;