Цикл в функции проходит только один раз - C (СИ)

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

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

Здравствуйте. Скажите что стоит изменить и почему не работает цикл в функции "sortingArray",

проходит только один раз.

Решение задачи: «Цикл в функции проходит только один раз»

textual
Листинг программы
void sortingArray (int a [], int S, int c, int c_2)
{
    int reserve;
    for (c = 0; c < S - 1; c++){
        for (c_2 = S - 2; c_2 >= 0;--c_2){
            if (a [c_2] > a [c_2 + 1]){
                reserve = a [c_2];
                a [c_2] = a [c_2 + 1];
                a [c_2 + 1] = reserve;
                }
            }
  }
 
}

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

  1. Объявлены входные параметры функции: массив a, его размер S, два значения c и c_2, которые пока не используются.
  2. Объявлена временная переменная reserve.
  3. Запускается внешний цикл c, который выполняется S-1 раз.
  4. Внутренний цикл c_2 запускается c_2 = S-2, c_2 >= 0 и выполняется до c_2 = 0.
  5. Если элемент a[c_2] больше следующего элемента a[c_2+1], то выполняется внутренняя логика функции:
  6. Значение a[c_2] сохраняется в переменной reserve.
  7. Значение a[c_2+1] присваивается a[c_2].
  8. Значение reserve присваивается a[c_2+1].
  9. Внутренний цикл завершается.
  10. Внешний цикл завершается.

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


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

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

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