Сортировка пузырьком - C (СИ) (76206)
Формулировка задачи:
Помогите пожалуйста написать программу,не получается,НА ЯЗЫКЕ СИ!
Задание: В матрице n*m отсортируйте нечетные строки в порядке возрастания элементов k столбца.
вот коды которые можно использовать в программе (но надо без функции!!!)
void sort(int a[n]) { int t=0, i, j; // цикл для прохода по массиву for (i=0; i<n; i++) { // цикл для перебора элементов for (j=n-1; j>=1; j--) { // если последний элемент меньше предыдущего, то меняем местами if (a[j]<a[j-1]) { t=a[j]; a[j]=a[j-1]; a[j-1]=t; } } } }
Решение задачи: «Сортировка пузырьком»
textual
Листинг программы
int sor(int a[][5]); int vvod(int a[][5]); int vyvod(int a[][5]); #include <stdio.h> int main(void) { int a[5][5]; vvod(a); sor(a); vyvod(a); return 0; } int vyvod(int a[][5]) { int i,j; printf("\n"); printf("\nOtsortirovanny` variant: "); printf("\n\n"); sor(a); for(i=0; i<5; i++) { for(j=0; j<5; j++) { printf(" %i",a[i][j]); } printf("\n"); } printf("\n"); return 0; } int vvod(int a[][5]) { int i,j; printf("\nVvodite elementy:\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) { scanf("%i",&a[i][j]); } } printf("\n"); printf("\nIsxodny` variant: "); printf("\n\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) { printf(" %i",a[i][j]); } printf("\n"); } return 0; } int sor(int a[][5]) { int i,j,h,prom; for(h=0; h<5; h++) { for(i=0; i<5; i=i+2) { for(j=0; j<4; j++) { if(a[i][j] > a[i][j+1]) { prom=a[i][j]; a[i][j]=a[i][j+1]; a[i][j+1]=prom; } } } } return 0; }
Объяснение кода листинга программы
int sor(int a[][5]);
- это функция, которая принимает двумерный массивa
размером 5x5 и выполняет сортировку пузырьком. Возвращает функция0
.int vvod(int a[][5]);
- это функция, которая запрашивает у пользователя ввод элементов для массиваa
и сохраняет их в массив. Возвращает функция0
.int vyvod(int a[][5]);
- это функция, которая выводит на экран массивa
в отсортированном виде. Возвращает функция0
.int main(void)
- это главная функция программы, которая считывает с диска массивa
, вызывает функцию сортировкиsor(a)
, выводит на экран отсортированный массивa
с помощью функцииvyvod(a)
. Возвращает функция0
.int vyvod(int a[][5])
- это функция, которая выводит на экран массивa
. Для этого используются два вложенных циклаfor
, которые проходят по всем элементам массива. Каждое число выводится с помощью функцииprintf()
. После вывода всех чисел вызывается функцияprintf(
\n);
, чтобы перейти на новую строку. Возвращает функция0
.int vvod(int a[][5])
- это функция, которая запрашивает у пользователя ввод элементов для массиваa
. Для этого используются два вложенных циклаfor
, которые проходят по всем элементам массива. В каждой итерации внутреннего цикла вызывается функцияscanf()
, которая считывает с диска число и сохраняет его в соответствующий элемент массиваa
. После ввода всех чисел вызывается функцияprintf(
\n);
, чтобы перейти на новую строку. Возвращает функция0
.int sor(int a[][5])
- это функция, которая выполняет сортировку пузырьком. Для этого используется три вложенных циклаfor
. Внешний циклfor
проходит по всем строкам массиваa
. В каждой итерации внешнего цикла вызывается внутренний циклfor
, который проходит по всем элементам текущей строки. Если текущий элемент больше следующего, то они меняются местами с помощью временной переменнойprom
. Внутренний циклfor
выполняется до тех пор, пока не будет отсортированна текущая строка. Возвращает функция0
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д