Перестановка строк матрицы по неубыванию значений наименьших элементов строк матрицы.

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

Алгоритм:
1)Создаем произвольный массив, заполняем его случайными числами и выводим его на экран;
2)Находим наименьший элемент в каждой строке, записываем найденный результат в массив minrow;
3)Сортируем наименьшие элементы строк по неубыванию и соответсвующим образом сортируем строки матрицы;
4)Выводим на экран массив согласно условию.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
main()
{                                          // создаем массив размера 5*7
  const int row = 5;
  const int col = 7;
  int a[row][col];
  int i, j, v, u;
 
  clrscr();
 
  printf("Сортировка массива по неубыванию значений наименьших злементов строк матрицы\n\n");
 
 
  randomize();                             // заполняем массив случайными числами 
  for (i = 0; i < row; i++)
    for (j = 0; j < col; j++)
      a[i][j] = random(100);
 
  for (i = 0; i < row; i++) {              // выводим массив на экран
    for (j = 0; j < col; j++)
      printf ("%4d", a[i][j]);
      printf("\n");
  }
 
  printf("\nВывод наименьшего элемента строки\n");
 
  int minrow [row];                        // cоздаем массив minrow, для хранения минимальных элементов строк матрицы
 
  for (i = 0; i < row; i++) {              // производим поиск минимальных элементов строк
    minrow[i] = a[i][0];
    for (j = 0; j < col; j++)
      if (a[i][j] < minrow [i])
      minrow[i] = a[i][j];
      printf ("\n%4d", minrow[i]);         // выводим минимальные элементы строк 
  }
 
  for (i = 0; i < row; i++) {              // проводим сортировку минимальных элемнтов по неубыванию
    for (v = i + 1; v < row; v++) {
      if (minrow[i] > minrow[v])  {
	u = minrow[i];
	minrow[i] = minrow[v];
	minrow[v] = u;
	for (j = 0; j < col; j++) {        // сортируем строки матрицы
	  u = a[i][j];
	  a[i][j] = a[v][j];
	  a[v][j] = u;
	}
      }
    }
  }
 
  printf ("\n\nВывод массива согласно условию\n\n");
 
  for (i = 0; i < row; i++) {              // выводим отсортированный массив на экран, согласно условию
    for (j = 0; j < col; j++)
      printf ("%4d", a[i][j]);
      printf("\n");
  }
 
  getch();
  return 0;
}

Ключевые слова: 
Массив, сортировка массива.
ВложениеРазмер
PROGRAM.rar9.73 кб