Не получается упорядочить массив по возрастанию - C (СИ)

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

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

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"

int main()
 
{
float d[8];
printf ("Input d[8]\n");
for (int i=0;i<8;i++)
    scanf ("%f", &d[i]);
int fl;
do
{
    fl=0;
    for (int i=0;i<7;i++)
        if (d[i]>d[i+1])
        {
            float temp=d[i];
            d[i]=d[i+1];
    d[i+1]=temp;
    fl=1;
}
}
while (fl==0);
printf ("Massive D:\n");
for (int i=0;i<8;i++)
    printf ("%6.1f ", d[i]);
getch ();
    return 0;
}
надо чтоб он ставил в массив d[8] в порядке возрастания, где ошибка?

Решение задачи: «Не получается упорядочить массив по возрастанию»

textual
Листинг программы
for(int j = 0; j < 7; j++)
        {
        for (int i=0;i<7;i++)
            if (d[i] > d[i+1])
            {
                float temp = d[i];
                d[i]=d[i+1];
                d[i+1]=temp;
                fl=1;
            }
        }

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

В этом коде происходит сортировка массива d по возрастанию. Вот пошаговое объяснение:

  1. Переменная j инициализируется значением 0. Это используется в цикле for, который будет выполняться 7 раз.
  2. Внутри этого цикла, для каждого значения j, выполняется еще один цикл for, который также выполняется 7 раз.
  3. Во внутреннем цикле, сравниваются два элемента массива d, d[i] и d[i+1]. Если d[i] больше d[i+1], то выполняется следующий код.
  4. В этом случае, происходит обмен значений d[i] и d[i+1]. То есть, d[i] становится равным d[i+1], а d[i+1] становится равным d[i].
  5. Также, переменной fl присваивается значение 1. Это используется для проверки, были ли произведены обмены во время сортировки. Если обменов не было, то fl остается равным 0.
  6. После выполнения внутреннего цикла, переменная j увеличивается на 1, чтобы перейти к следующей итерации внешнего цикла.
  7. Циклы продолжают выполняться, пока j меньше 7.
  8. После завершения циклов, переменная fl проверяется. Если она равна 0, это означает, что массив уже был отсортирован по возрастанию, и сортировка не требовалась.
  9. Если fl равно 1, это означает, что были произведены обмены, и массив был отсортирован. Этот код использует алгоритм сортировки пузырьком. Он работает, сравнивая соседние элементы массива и меняя их местами, если они находятся в неправильном порядке. Этот процесс повторяется до тех пор, пока массив не будет отсортирован.

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

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