Пузырьковая сортировка - C (СИ) (70707)
Формулировка задачи:
Добрый день, подскажите, почему в этой программе никогда не срабатывает цикл, мы никогда не входим в него? Заранее спасибо.
#include <stdio.h> void main(void) { int a = 0; int array[10]; int tmp = 0; for (int i = 0; i < 10; i++) { scanf_s("%d", &a); array[i] = a; } for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++){ if (array[i] > array[i++]) //эта проверка не срабатывает { tmp = array[i]; array[i] = array[i++]; array[i + 1] = tmp; } } } for (int i = 0; i < 10; i++) { printf("%d ", array[i]); } scanf_s("%d,", &a); }
Решение задачи: «Пузырьковая сортировка»
textual
Листинг программы
void main(void) { int a = 0; int array[10]; int tmp = 0; for (int i = 0; i < 10; i++) { scanf_s("%d", &a); array[i] = a; } while (1) { a=0; for (int i = 0; i < 9; i++) { if (array[i] > array[i+1]) { tmp = array[i]; array[i] = array[i+1]; array[i + 1] = tmp; a=1; } } if (a==0) break; } for (int i = 0; i < 10; i++) { printf("%d ", array[i]); } scanf_s("%d,", &a); }
Объяснение кода листинга программы
- В начале кода объявлены три переменные: a, array и tmp. Значение переменной a равно 0, а массив array содержит 10 элементов. Значение переменной tmp также равно 0.
- Далее, с помощью цикла for происходит заполнение массива array значениями, которые вводятся пользователем. Для этого используется функция scanf_s, которая принимает в качестве аргумента адрес переменной a и считывает в неё значение, введенное пользователем.
- После заполнения массива array значениями, происходит сортировка массива с помощью цикла while. В начале каждого прохода в цикле, переменной a присваивается значение 0.
- Затем, с помощью цикла for происходит сравнение элементов массива array. Если текущий элемент больше следующего, то они меняются местами, а переменной a присваивается значение 1.
- Если после прохода по всем элементам массива значение переменной a осталось равным 0, значит массив уже отсортирован, и выполнение программы завершается.
- В конце программы выводится отсортированный массив с помощью цикла for и функции printf. Значение переменной a, которое было последним введенным пользователем, считывается с помощью функции scanf_s.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д