Дана матрица размерностью nxn, содержащая вещественные числа. Отсортировать каждую строку матрицы по убыванию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана матрица размерностью nxn, содержащая вещественные числа. Отсортировать каждую строку матрицы по убыванию элементов методом выбора

Решение задачи: «Дана матрица размерностью nxn, содержащая вещественные числа. Отсортировать каждую строку матрицы по убыванию»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    int n;
    do{
        system("cls");
        printf("Enter the size of the matrix: ");
        scanf("%d", &n);
    }while( n < 1 );
    double arr[n][n];
    size_t i, j, z;
    srand(time(0));
    for( i = 0; i < n; i++ ){
        for( j = 0; j < n; j++ ){
            arr[i][j] = (-200 + rand()%400) + (rand()%10 * 0.1);
            printf(" %6.1lf", arr[i][j]);
        }
        printf("\r\n");
    }
    printf("\r\n");
    system("pause");
 
 
    for( i = 0; i < n; i++ ){
        char ans;
        do{
            system("cls");
            printf("Want to sort row #%d in descending order (Y/N): ", ((int)i+1));
            scanf(" %c", &ans);
        }while( ans != 'y' && ans != 'Y' && ans != 'n' && ans != 'N' );
        if( ans == 'y' || ans == 'Y' ){
            for( j = 0; j < n-1; j++ ){
                for( z = j+1; z < n; z++ ){
                    if( arr[i][j] < arr[i][z] ){
                        double tmp_arr = arr[i][j];
                        arr[i][j] = arr[i][z];
                        arr[i][z] = tmp_arr;
                    }
                }
            }
        }
    }
    printf("Sorting finished!\n\r\n");
    system("pause");
    system("cls");
 
 
    printf("The result of the matrix:\n\r\n");
    for( i = 0; i < n; i++ ){
        for( j = 0; j < n; j++ )
            printf(" %6.1lf", arr[i][j]);
        printf("\r\n");
    }
    printf("\r\n");
    system("pause");
    return 0;
}

Объяснение кода листинга программы

Вот список действий, которые выполняет код:

  1. Ввод размера матрицы с помощью функции scanf.
  2. Генерация случайных значений для элементов матрицы с помощью функции rand().
  3. Вывод значений матрицы на экран.
  4. Сортировка каждой строки матрицы в порядке убывания с помощью алгоритма сортировки пузырьком.
  5. Вывод отсортированной матрицы на экран.
  6. Завершение работы программы.

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы