Выполнить сортировкой методом пузырька - C (СИ)
Формулировка задачи:
Выполнить сортировкой методом пузырька
Разобрать программу, которая выводит целочисленную матрицу из n строк и m столбцов. Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по убыванию массив. Вывести массив до и после сортировки.
Решение задачи: «Выполнить сортировкой методом пузырька»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
int main(){
setlocale(LC_ALL, "rus");
srand(time(0));
int **array_a; //Динамический массив
int i, j, k; //Счетчики
int line; //Строки
int column; //Столбцы
int buf; //Буферная переменная
/*Вводим размер матрицы*/
printf("Введите размер матрицы:\n");
scanf("%d %d", &line, &column);
/*Выделяем память для массива*/
array_a = (int**)malloc(sizeof(int)*line);
for(i = 0; i < line; i++){
array_a[i] = (int*)malloc(sizeof(int)*column);
}
/*Заполняем массив через рандом*/
printf("Исходный массив:\n");
for(i = 0; i < line; i++){
for(j = 0; j < column; j++){
array_a[i][j] = rand()%10 - 4;
printf("%d ", array_a[i][j]);
}
printf("\n");
}
/*Сортируем пузырьком*/
for(i = 0; i < line; i++){
for(k = 0; k < column - 1; k++){
for(j = k + 1; j < column; j++){
if(array_a[i][k] > array_a[i][j]){
buf = array_a[i][k];
array_a[i][k] = array_a[i][j];
array_a[i][j] = buf;
}
}
}
}
/*Выводим итог*/
printf("\nИтог:\n");
for(i = 0; i < line; i++){
for(j = 0; j < column; j++){
printf("%d ", array_a[i][j]);
}
printf("\n");
}
/*Освобождаем память*/
free(array_a);
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с языком C
- Устанавливаем локаль на русский язык с помощью функции setlocale
- Инициализируем генератор случайных чисел с помощью функции srand и времени с помощью функции time
- Объявляем переменные для работы с матрицей и ее размерами
- С помощью функции scanf считываем размер матрицы
- С помощью функции malloc выделяем память для матрицы
- Заполняем матрицу случайными числами с помощью функции rand и выводим ее на экран
- Сортируем матрицу методом пузырька
- Выводим отсортированную матрицу на экран
- Освобождаем память с помощью функции free
- Завершаем программу и возвращаем 0