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

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

Алгоритм:
1) Создаем массив с заданным размером. Заполняем его случайными числами.
2) Используем метод "сортировка выбором" для преобразования массива.
3) Печатаем получившийся массив.

#include <stdio.h>
#include <stdlib.h>
 
 
void main()
{
	int a[ 100 ][ 100 ];		// создаем массив 
	int  row, col;				// переменные, отвечающие за количество строк и столбцов
	int i, j;
 
 
	printf( "Enter sizes of matrix: \n" );		// просим ввести размер массива
	scanf( "%d  %d", &row, &col );
 
 
 
	for( i = 0; i < col; i++ )			// заполняем массив случайными числами и печатаем его на экране
	{
		for( j = 0; j < row; j++ )
		{
 
			a[ i ][ j ] = ( int )rand()%10; 
 
			printf( "%2d", a[ i ][ j ] );
		}
		printf("\n");
	}
 
 
	int k=0;
	int temp=0;
 
	for (i=0; i < row; i++) {				// используем метод "сортировка выбором" для преобразования массива
		for (k=i+1; k < row; k++) {
			if (a[0][i] > a[0][k]){
				for (j=0; j < col; j++) {
					temp = a[j][i];
					a[j][i]=a[j][k];
					a[j][k]=temp;
				}
			}
		}
	}
 
	printf ("\n");
 
		for( i = 0; i < col; i++ )			// выводим преобразованный массив на экран
		{
			for( j = 0; j < row; j++ )
			{
			printf( "%2d", a[ i ][ j ] );
			}
		printf("\n");
		}
 
 
}

Ключевые слова: 
массив, сортировка выбором, перестановка столбцов в матрице
ВложениеРазмер
massiv_15.rar9.04 кб