Сортировка строк матрицы

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

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

#include <stdafx.h>
#include <stdlib.h>
#include <conio.h>
 
void main()
{
	int mas[ 50 ][ 50 ]; 
 
	//инициализируем массив
 
	printf( "Vvedite razmer matrici\n" );
	srand( 1 );
 
	//получаем от пользователя реальные размеры массива
 
	int i, j, a, b; scanf( "%d  %d", &a, &b ); 
	for( i = 0; i < a; i++ )
	{
		for( j = 0; j < b; j++ )
		{
 
			//заполняем матрицу с помощью генератора псевдослучайных чисел
 
			mas[ i ][ j ] = ( double )rand() / ( RAND_MAX + 1 ) * 99 + 1; 
 
			//выводим исходную матрицу
 
			printf( "%3d", mas[ i ][ j ] );
		}
		printf("\n");
	}
	int x,y;
 
	//применяем пузырьковый метод сортировки 
 
	for( y = 0; y < a; y++ )
	{
		for ( i = 0; i < ( a - 1 ); i++ )
		{
			if( mas[ i ][ 0 ] > mas[ i + 1 ][ 0 ] )
			{
				for( j = 0 ; j < b; j++ )
				{
					x = mas[ i ][ j ];
					mas[ i ][ j ] = mas[ i + 1 ][ j ];
					mas[ i + 1 ][ j ] = x;
				}
			}
		}
	}
	printf("\n");
 
	//выводим получившуюся матрицу на экран
 
	for( i = 0; i < a; i++ )
	{
		for( j = 0; j < b; j++ )
		{
			printf( "%3d", mas[ i ][ j ] );
		}
		printf("\n");
	}
	getch();
}
<\code>

Ключевые слова: 
массив, матрица, сортировка, метод пузырька
ВложениеРазмер
massiv_1.rar9.34 кб