Дана действительная матрица размером m * n; упорядочить (переставить) столбцы матрицы по неубыванию значений первых элементов столбцов. Разрешается использовать дополнительный массив. Задание №15 (Сортировка массивов). (см. "Сборник задач для начинающего программиста") Алгоритм: #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"); } }
Ключевые слова:
массив, сортировка выбором, перестановка столбцов в матрице
|
|||||||