Сортировка матрицы по невозрастанию минимальных элементов строк

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

Алгоритм:

-Заводим двумерный массив, хранящий матрицу m*n, и массив для минимальных значений её строк.

-Заполняем матрицу псевдослучайными числами.

-Выводим её на экран.

-Перебирая каждое число в строке, заполняем массив с минимальными значениями строк.

-Сортируем матрицу, сравнивая элементы массива с минимальными значениями строк.

#include<stdio.h>
#include<stdlib.h>  //подключаем библиотеку для работы с функцией RANDOMIZE 
#include<conio.h>   //библиотека с функцией GETCH
#define m 6
#define n 5
 
int a[m][n];
int i,j,k,l,temp;
int min[m],tmp[n];
 
int main(){
  for (i=0; i<m; i++)
    min[i]=101;
 
 
 
  randomize();
  for (i=0; i<m; i++){      //задаём произвольную матрицу m*n
    for (j=0; j<n; j++){
      a[i][j]=random(100);
    }
  }
  printf("\n Ishodnaya matritsa\n");
 
  for (i=0; i<m; i++){                //выводим её на экран
    for (j=0; j<n; j++){
      printf("%5d", a[i][j]);
    }printf ("\n");
  }
 
  for (i=0; i<m; i++){         //находим и записываем в массив минимальные элементы строк данной матрицы
    for (j=0; j<n; j++){
      if (min[i] > a[i][j] )
	min[i]=a[i][j];
    }
  }
 
 
  printf("\n Otsortirovannaya matritsa\n");
 
  for (k=0; k<m-1; k++){
    for (l=k+1; l<m; l++){
      if (min[k]>min[l]){
 
	for (j=0; j<n; j++){    //сортируем матрицу по неубыванию минимальных элементов строк
	  tmp[j]=a[l][j];       //для этого, сравнивая, выстраиваем по неубыванию и элементы массива с минимальными значениями
	  a[l][j]=a[k][j];
	  a[k][j]=tmp[j];
 
	  temp = min[l];
	  min[l]=min[k];
	  min[k]=temp;
	}
      }
    }
  }
 
  for (i=0; i<m; i++){           //печатаем полученную матрицу
    for (j=0; j<n; j++){
      printf("%5d", a[i][j]);
    }printf ("\n");
  }
 
 
  getch(); //задерживает экран до нажатия любой клавиши
  return 0;
}

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