Сортировка массива по возрастанию методом прямого обмена - C (СИ) (71667)
Формулировка задачи:
Задание :Массив из 5 целых чисел заполнить с клавиатуры. Произвести сортировку массива по возрастанию методом прямого обмена . После каждого прохода выводить содержимое массива.
Набросок есть .сделайте пожалуйста по возрастанию . Какой должен быть ответ на картинке .
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #define n 5
- int main()
- {
- int a[n], min, n_min, temp;
- for(int i = 0; i < n; i++)
- {
- scanf("%3i", &a[i]);
- }
- for(int i = 0; i < n - 1; i++)
- {
- min = a[i];
- n_min = i;
- for(int k = i + 1; k < n; k++)
- {
- if(a[k] < min)
- {
- min = a[k];
- n_min = k;
- }
- }
- temp = a[i];
- a[i] = a[n_min];
- a[n_min] = temp;
- for(int j = 0; j < n; j++)
- {
- printf("%3i", a[j]);
- }
- printf("\n");
- getch();
- }
- printf("\n");
- return 0;
- }
Решение задачи: «Сортировка массива по возрастанию методом прямого обмена»
textual
Листинг программы
- #include <stdio.h>
- int main()
- {
- int i, x, arr[5] = {1, 2, 5, 4, 3};
- for(i = 1; i < 5; ++i){
- if(arr[i] < arr[i - 1]){
- x = arr[i - 1];
- arr[i - 1] = arr[i];
- arr[i] = x;
- for(i = 0; i < 5; ++i){
- printf("%d ", arr[i]);
- if(i == 4)
- printf("\n");
- }
- i = 1;
- }
- }
- return 0;
- }
Объяснение кода листинга программы
- Подключение стандартной библиотеки
для работы с выводом на экран - Объявление переменных: i - счётчик для цикла x - временная переменная для обмена значениями arr[5] - массив из 5 элементов со значениями {1, 2, 5, 4, 3}
- Начинается цикл for для прохода по массиву от 1 до 4 элемента (исключая 5-й элемент)
- Внутри цикла проверяется условие arr[i] < arr[i - 1] (текущий элемент меньше предыдущего)
- Если условие выполняется, то значениями переменных x и arr[i - 1] меняются местами значениями arr[i] и arr[i - 1]
- Далее, с помощью вложенного цикла for и оператора printf выводятся значения массива на экран через пробел
- Если i == 4, то выводится символ новой строки \n
- После завершения вложенного цикла, значение i сбрасывается до 1 для следующего прохода по циклу
- По завершении цикла for, программа возвращает 0, что означает успешный конец работы
- Значения массива после сортировки: 1, 2, 3, 4, 5
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д