Сортировка массива по возрастанию методом прямого обмена - C (СИ) (71667)

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

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

Задание :Массив из 5 целых чисел заполнить с клавиатуры. Произвести сортировку массива по возрастанию методом прямого обмена . После каждого прохода выводить содержимое массива. Набросок есть .сделайте пожалуйста по возрастанию . Какой должен быть ответ на картинке .
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #define n 5
  4. int main()
  5. {
  6. int a[n], min, n_min, temp;
  7. for(int i = 0; i < n; i++)
  8. {
  9. scanf("%3i", &a[i]);
  10. }
  11. for(int i = 0; i < n - 1; i++)
  12. {
  13. min = a[i];
  14. n_min = i;
  15. for(int k = i + 1; k < n; k++)
  16. {
  17. if(a[k] < min)
  18. {
  19. min = a[k];
  20. n_min = k;
  21. }
  22. }
  23. temp = a[i];
  24. a[i] = a[n_min];
  25. a[n_min] = temp;
  26. for(int j = 0; j < n; j++)
  27. {
  28. printf("%3i", a[j]);
  29. }
  30. printf("\n");
  31. getch();
  32. }
  33. printf("\n");
  34. return 0;
  35. }

Решение задачи: «Сортировка массива по возрастанию методом прямого обмена»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     int i, x, arr[5] = {1, 2, 5, 4, 3};
  6.     for(i = 1; i < 5; ++i){
  7.         if(arr[i] < arr[i - 1]){
  8.             x = arr[i - 1];
  9.             arr[i - 1] = arr[i];
  10.             arr[i] = x;
  11.             for(i = 0; i < 5; ++i){
  12.                 printf("%d ", arr[i]);
  13.                 if(i == 4)
  14.                     printf("\n");
  15.             }
  16.             i = 1;
  17.         }
  18.  
  19.     }
  20.  
  21.     return 0;
  22. }

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

  1. Подключение стандартной библиотеки для работы с выводом на экран
  2. Объявление переменных: i - счётчик для цикла x - временная переменная для обмена значениями arr[5] - массив из 5 элементов со значениями {1, 2, 5, 4, 3}
  3. Начинается цикл for для прохода по массиву от 1 до 4 элемента (исключая 5-й элемент)
  4. Внутри цикла проверяется условие arr[i] < arr[i - 1] (текущий элемент меньше предыдущего)
  5. Если условие выполняется, то значениями переменных x и arr[i - 1] меняются местами значениями arr[i] и arr[i - 1]
  6. Далее, с помощью вложенного цикла for и оператора printf выводятся значения массива на экран через пробел
  7. Если i == 4, то выводится символ новой строки \n
  8. После завершения вложенного цикла, значение i сбрасывается до 1 для следующего прохода по циклу
  9. По завершении цикла for, программа возвращает 0, что означает успешный конец работы
  10. Значения массива после сортировки: 1, 2, 3, 4, 5

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


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

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

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы