Здравствуйте, ребята, мне нужно знать, что я должен передать функции qsort, чтобы сделать эту работу? Все остальное должно оставаться как есть, кроме аргументов функции qsort.Сортировочная матрица с функцией qsort C++
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
void printMatrix(int **matrix, int n){
for(int i = 0; i<n; i++){
for(int j =0 ; j < n; j++)
cout<<matrix[i][j]<<" ";
cout<<endl;
}
}
void initMatrix(int **matrix, int n){
for(int i = 0; i<n; i++){
for(int j =0 ; j < n; j++){
matrix[i][j] = rand()%10;
}
}
}
int compar(const void *a, const void *b){
int ia = *((int*)a);
int ib = *((int*)b);
return ia-ib;
}
void deleteMatrix(int **matrix){
delete [] matrix;
}
int main()
{
cout<<"How many rows and cols?"<<endl;
int n;
cin>>n;
int **matrix;
matrix = new int* [n];
for(int j = 0; j < n; j++)
matrix[j] = new int[n];
initMatrix(matrix,n);
printMatrix(matrix,n);
cout<<"Sorted matrix:"<<endl;
qsort(matrix,n*n,sizeof(int),compar); //<-----------
printMatrix(matrix,n);
deleteMatrix(matrix);
return 0;
}
P.S Там должно быть ** указатель на матрицу. Спасибо заранее!
В общем, лучше использовать std :: sort в C++. – user1436187
Как работает сортировка по 2-мерному массиву? Как вы говорите 'qsort' начало и количество элементов? –
Опишите, что ваши критерии сортировки для 2-мерной матрицы. – PaulMcKenzie