Отсортировать массив методом пузырька - C (СИ) (72923)
Формулировка задачи:
Всем Доброго времени суток, нужно написать програму в С(Си), которая методом обмена "пузырьки" упорядочивает по убыванию одномерный массив.
Тоесть нужно ввести свои цифры в консоле, а програма должна их упорядчить и вивести.
Почитал, понял что нужно каждный елемент сравнивать с предыдущим, но как это реализовать? на форуме много тем по этому, но не нашел что-нибудь подходящего.
через for наверно это надо делать?
заранее спасибо.
int arr[20];
Решение задачи: «Отсортировать массив методом пузырька»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int A[10]; int i,j,t,f; FILE *g; //файл for (i=0; i<10; i++) { printf("A[%d]=",i); scanf("%d",&A[i]); } while (1) { f=0; for (i=0; i<9; i++) if (A[i] < A[i+1]) { t=A[i]; A[i]=A[i+1]; A[i+1]=t; f=1; } if (f==0) break; } g=fopen("D:\\puzirki.txt","a+"); //открываем файл for (i=0; i<10; i++) { printf("%d ",A[i]); fprintf(g,"%d\n",A[i]); //пишем в файл } fclose(g); //закрываем файл system("PAUSE"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и стандартным вводом/выводом
- Объявление переменных: массив A, индексы i, j, флаг f, т, файл g
- Заполнение массива A с помощью ввода с клавиатуры
- Бесконечный цикл, который будет выполняться до тех пор, пока массив не будет отсортирован по возрастанию
- Перебираем массив и сравниваем значения элементов. Если текущий элемент меньше следующего, меняем их местами и устанавливаем флаг f в значение 1
- Проверяем значение флага f. Если массив отсортирован, выходим из цикла
- Открываем файл
D:\\puzirki.txt
в режиме добавления информации - Перебираем массив и выводим его значения на экран, а также записываем их в файл
- Закрываем файл
- Завершаем программу с помощью команды system(
PAUSE
)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д