Отсортировать массив целых чисел - C (СИ)
Формулировка задачи:
требуется отсортировать массив из целых чисел на возрастание,цикл for успешно справляется,только нужно ему сказать сколько раз ему повторяться.Для этого цикл while,вот только об условие я споткнулся.Вроде бы логично
поставить while(A[i] > A[i - 1]) и цикл for будет работать пока не отсортируется весь массив. Программа компилируется, но при запуске вылетает с вопросом:"Отправить отчет об ошибке Биллу Гейтцу?"))
Пробовал вместо while поставить еще один for(j = 0; j < 36; ++j), массив прекрасно сортируется,но выполняется куча лишних циклов. Я в ступоре,надеюсь на дельный совет.
#include <stdlib.h> int main() { int A[6] = {9, 36, 2, 78, 4, 12}; int i, x; while(?????){ for(i = 1; i < 6; ++i){ if(A[i] < A[i - 1]){ x = A[i - 1]; A[i - 1] = A[i]; A[i] = x; } printf("%d\n", A[i -1]); } printf("%d\n", A[5]); } return 0; }
Решение задачи: «Отсортировать массив целых чисел»
textual
Листинг программы
bool sorted = false; while (!sorted) { sorted = true; ... if (...) { ... sorted = false; } }
Объяснение кода листинга программы
В данном коде используется цикл while, который выполняется до тех пор, пока не будет выполнено условие sorted = true. В начале каждого прохода цикла значение sorted сбрасывается в false. Если в процессе выполнения цикла будет выполнено условие, то sorted снова устанавливается в true. Внутри цикла находятся два вложенных блока if и ..., которые выполняются, если выполнено условие. Если условие не выполнено, то выполняется ..., которое включает в себя операторы, изменяющие значения переменных, и в результате которых sorted устанавливается в false. В данном коде нет явной сортировки массива целых чисел, поэтому, возможно, это было пропущено при написании кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д