Дана матрица размерностью 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; }
Объяснение кода листинга программы
Вот список действий, которые выполняет код:
- Ввод размера матрицы с помощью функции scanf.
- Генерация случайных значений для элементов матрицы с помощью функции rand().
- Вывод значений матрицы на экран.
- Сортировка каждой строки матрицы в порядке убывания с помощью алгоритма сортировки пузырьком.
- Вывод отсортированной матрицы на экран.
- Завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д