Сортировка строк матрицы по "первому элементу"

Дана действительная матрица размером m * n; упорядочить (переставить) строки матрицы по неубыванию значений первых элементов строк. Разрешается использовать дополнительный массив.Задача № 1 (Сортировка массивов) (см. "Сборник задач для начинающего программиста")

Алгоритм:
1)создаём двухмерный массив
2)пользователь вводит реальные размеры массива
3)заполняем матрицу с помощью генератора псевдослучайных чисел и выводим на экран получившийся массив
4)Сортируем "пузырьком" строки матрицы по первому элементу и выводим результат

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
float a[50][50];   //сортируемый массив
int i, j, m, n;
float x;
int y;
int main(){
//получение от пользователя реальных размеров
 printf( "Vvedite kolichestvo strok matrici\n" );
 scanf( "%d" , &m );
 
 printf( "Vvedite kolichestvo stolbtsov matrici\n" );
 scanf( "%d" , &n );
 
 
 
 for( i = 0; i<m; i++ ){
  for( j = 0; j<n; j++ ) {
   a[i][j] = (double) rand()/(RAND_MAX-100)*91+9; //заполнение матрицы псевдослучайными числами
   printf( "%f ", a[i][j] ); //выведение исходной матрицы на экран
  }
  printf("\n");
 }
 //сортировка "пузырьком" строк по неубыванию первого элемента
 
 for( y = 0; y<m; y++ ) {
  for ( i = 0; i<(m - 1); i++ ){
   if (a[i][0]> a[i + 1][0]){
    for( j = 0 ; j<n; j++ ){
     x = a [i][j];
     a[i][j] = a[i + 1][j];
     a[i + 1][j] = x;
    }
   }
  }
 }
 printf("\n");
 
 for( i = 0; i<m; i++ ){
  for( j = 0; j<n; j++ ){
   printf( "%f ", a[i][j] ); //выведение результата
  }
  printf("\n");
 }
 
 getch();
 return 0;
}

Ключевые слова: 
массивы, сортировка массивов
ВложениеРазмер
MASSIV_1.rar20.05 кб