Переделать программу методом сортировки пузырька - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста переделать программу методом сортировки пузырька. Буду очень благодарен)))
#include <stdio.h>
int main(void) 
{
    int i, j=0, imax, a[10], b[10], *min, *max, *p;
    for(;;) 
{
    printf("Vvedite imax ");
    scanf("%d", &imax);
    if (imax<1||imax>10) 
    printf("Error");
    else break;
};
for (i=0; i<=imax; i++) {
    printf("Vvedite a[%d] ", i);
    scanf("%d", &a[i]);
};
max=&a[0]; 
for(i=0; i<=imax; i++) {
         if (&a[i]>max) 
         max=&a[i];
                      };
min=&a[0]; 
for(i=0; i<=imax; i++) {
         if (&a[i]<min)
         min=&a[i];
                      };
for (p=max; p>=min; p--) {
    for(i=0; i<=imax; i++) {
             if(&a[i]==p) {
             b[j]=i;
             j++;};
                         };
                         };
for (j=0; j<=imax; j++) 
printf("%d", b[j]);
getchar();
getchar();
return 0;
}

Решение задачи: «Переделать программу методом сортировки пузырька»

textual
Листинг программы
void sort(float *A,int count)
{
int flag=1;
    for(;flag==1;)
    {
        flag=0;
        for(int i=0;i<count-1;i++)
        {
                if(A[i]>A[i+1])
                {
                    swap(&A[i],&A[i+1]);
                    flag=1;
                }
 
        }
 
    }
}

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

  1. В функции sort(float *A,int count) на вход подается массив A и его размер count.
  2. Переменная flag инициализируется значением 1.
  3. Начинается цикл while(flag==1), который будет выполняться до тех пор, пока флаг не станет равным 0.
  4. Внутри цикла происходит еще один цикл for, который проходит по всем элементам массива, начиная с 0 и заканчивая count-1.
  5. Если текущий элемент массива A[i] больше следующего элемента A[i+1], то они меняются местами с помощью функции swap(&A[i],&A[i+1]) и флаг устанавливается в 1.
  6. После завершения внутреннего цикла, флаг проверяется на равенство 0. Если это так, то циклы завершаются.
  7. Если флаг не равен 0, то это означает, что в массиве есть элементы, которые необходимо переставить для сортировки.
  8. Функция sort возвращает отсортированный массив A.

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


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

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

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