Выполнить сортировкой методом выбора - C (СИ)
Формулировка задачи:
Выполнить сортировкой методом выбора
Разобрать программу, которая выводит целочисленную матрицу из n строк и m столбцов. Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по убыванию массив. Вывести массив до и после сортировки.
Решение задачи: «Выполнить сортировкой методом выбора»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { printf("input count columns and rows the matrix: "); size_t col, row; scanf("%u %u", &col, &row); size_t size = col * row; int* matrix = (int*) malloc(sizeof(int) * size); size_t i; for (i = 0; i < size; ++i) { matrix[i] = rand() % 90 + 10; } for (i = 0; i < size; ++i) { printf("%d ", matrix[i]); if (((i+1) % col) == 0) { printf("\n"); } } size_t j, max, tmp; for (i = 0; i < (size - 1); ++i) { max = i; for (j = i + 1; j < size; ++j) { if (matrix[max] < matrix[j]) { max = j; } } tmp = matrix[max]; matrix[max] = matrix[i]; matrix[i] = tmp; } printf("\n"); for (i = 0; i < size; ++i) { printf("%d ", matrix[i]); if (((i+1) % col) == 0) { printf("\n"); } } system("pause"); free(matrix); return 0; }
Объяснение кода листинга программы
- Ввод количества столбцов и строк матрицы с помощью функции scanf.
- Выделение памяти под матрицу с помощью функции malloc.
- Заполнение матрицы случайными числами в диапазоне от 10 до 90 с помощью функции rand и оператора %.
- Вывод содержимого матрицы на экран с помощью цикла for и функции printf.
- Ввод количества столбцов и строк матрицы с помощью функции scanf.
- Сортировка матрицы методом выбора с помощью двух вложенных циклов for и операторов if и else.
- Вывод отсортированной матрицы на экран с помощью цикла for и функции printf.
- Вызов функции system для приостановки работы программы до нажатия клавиши.
- Освобождение памяти, выделенной под матрицу, с помощью функции free.
- Возврат значения 0, сигнализирующего о успешном завершении программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д