Вместо сортировки происходит хаотичная перестановка - C (СИ)

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

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

Почему не сортирует? Он просто их хаотично переставляет. Где моя ошибка?
#include <stdio.h>
enum Bool {FALSE,TRUE,UNDEF};
int* bubble(int *a,int len)
{
int j,buf;
enum Bool flag=UNDEF;
while (flag==TRUE){
for (j=0;j<len;j++){
if (a[j]>a[j+1]) { 
buf=a[j];
a[j]=a[j+1];
a[j+1]=buf; 
flag=FALSE;
}
else flag=TRUE;
}
}
return a;
}
void main() {
int data[10]={1,5,8,3,55,9,0,-6,-9,12};
int i;
int *b;
int len=10;
b=bubble(data,len);
for (i=0;i<len;i++) printf("%d  ",b[i]);
}

Решение задачи: «Вместо сортировки происходит хаотичная перестановка»

textual
Листинг программы
a[j]=a[j+1];
a[j+1]=buf;

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

  1. В данном коде происходит обмен значениями между двумя переменными типа a и buf.
  2. Переменная j используется как индекс для обращения к элементам массива a.
  3. Значение переменной buf присваивается переменной a с индексом j.
  4. Значение переменной a с индексом j+1 присваивается переменной buf.
  5. В результате происходит обмен значениями между переменными a и buf.

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


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

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

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