C/C++

Помогите с заданием по программированию язык C(не С++)

Помогите пожалуйста с заданием, от этого задания зависит мой автомат по предемету, а препод завалит в первый раз.
Задание:
Упорядочить строки прямоугольной матрицы так, чтобы их первые
элементы образовывали возрастающую последовательность.

#include
#include
#include
#define M 5
#define N 7
#define A -50
#define B 50
/* инициализация элементов матрицы a случайными числами в диапазоне от A до B */
void InitA(int a[][N], int m, int n){
int i, j;
for(i = 0; i < m; i++) for(j = 0; j < n; j++)
a[i][j] = A + rand() % (B - A + 1);
}
/* вывод матрицы на экран */
void PrintA(int a[][N], int m, int n){
int i, j;
for (i = 0; i < m; i++){
for (j = 0; j < n; j++) printf("%5d", a[i][j]);
printf("\n");
}
printf("\n");
}
/* вывод массива на экран */
void PrintB(int *a, int n){
int i;
for(i = 0; i < n; i++) printf("%5d ", a[i]);
printf("\n");
}
int main( ){
int a[M][N], b[M];
srand(time(NULL)); InitA(a, M, N);
PrintA(a, M, N);
PrintB(b, M);
return 0;
}
Вот мой код, в нем составлена только прямоугольная матрица, мне нужно сделать сортировку. Пожалуйста помогите????????????.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define SWAP(a, b) { int t = a; a = b; b = t; }
#define ROWS 5
#define COLS 7
void random_fill(int* vec, int left, int right) {
size_t i = 0;
do vec[i] = RAND(left, right); while (++i != COLS);
}
void show(int* vec) {
size_t i = 0;
do printf("%4i", vec[i]); while (++i != COLS);
puts("");
}
void swap(int* a, int* b) {
size_t i = 0;
do SWAP(a[i], b[i]) while (++i != COLS);
}
int main(void) {
int matrix[ROWS][COLS];
int left = -50;
int right = 50;
size_t i = 0, j;
do random_fill(matrix[i], left, right); while (++i != ROWS);
i = 0;
do show(matrix[i]); while (++i != ROWS);
puts("");
for (i = ROWS - 1; i > 0; --i) {
for (j = 0; j < i; ++j) {
if (matrix[j][0] > matrix[j + 1][0]) {
swap(matrix[j], matrix[j + 1]);
}
}
}
i = 0;
do show(matrix[i]); while (++i != ROWS);
puts("");
return 0;
}
АA
Александр Aleksandr
60 418
Лучший ответ
1) по простому после заполнения - это сортировка столбцов- строк ячеек
по своему условиюусловию

2) или по трудному - это сортировка при вводе значений