Отсортировать массив методом пузырька - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и стандартным вводом/выводом
  2. Объявление переменных: массив A, индексы i, j, флаг f, т, файл g
  3. Заполнение массива A с помощью ввода с клавиатуры
  4. Бесконечный цикл, который будет выполняться до тех пор, пока массив не будет отсортирован по возрастанию
  5. Перебираем массив и сравниваем значения элементов. Если текущий элемент меньше следующего, меняем их местами и устанавливаем флаг f в значение 1
  6. Проверяем значение флага f. Если массив отсортирован, выходим из цикла
  7. Открываем файл D:\\puzirki.txt в режиме добавления информации
  8. Перебираем массив и выводим его значения на экран, а также записываем их в файл
  9. Закрываем файл
  10. Завершаем программу с помощью команды system(PAUSE)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы