Дана действительная матрица размером m * n; упорядочить (переставить) строки матрицы по неубыванию значений первых элементов строк. Разрешается использовать дополнительный массив.Задача № 1 (Сортировка массивов) (см. "Сборник задач для начинающего программиста") Алгоритм: #include <stdio.h> #include <stdlib.h> #include <conio.h> float a[50][50]; //сортируемый массив int i, j, m, n; float x; int y; int main(){ //получение от пользователя реальных размеров printf( "Vvedite kolichestvo strok matrici\n" ); scanf( "%d" , &m ); printf( "Vvedite kolichestvo stolbtsov matrici\n" ); scanf( "%d" , &n ); for( i = 0; i<m; i++ ){ for( j = 0; j<n; j++ ) { a[i][j] = (double) rand()/(RAND_MAX-100)*91+9; //заполнение матрицы псевдослучайными числами printf( "%f ", a[i][j] ); //выведение исходной матрицы на экран } printf("\n"); } //сортировка "пузырьком" строк по неубыванию первого элемента for( y = 0; y<m; y++ ) { for ( i = 0; i<(m - 1); i++ ){ if (a[i][0]> a[i + 1][0]){ for( j = 0 ; j<n; j++ ){ x = a [i][j]; a[i][j] = a[i + 1][j]; a[i + 1][j] = x; } } } } printf("\n"); for( i = 0; i<m; i++ ){ for( j = 0; j<n; j++ ){ printf( "%f ", a[i][j] ); //выведение результата } printf("\n"); } getch(); return 0; }
Ключевые слова:
массивы, сортировка массивов
|
|||||||