Вывести результат сортировки простого выбора - C (СИ)

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

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

я сделала сортировку, помогите с выводом, не пойму как его написать:
Листинг программы
  1. #include <stdio.h>
  2. #pragma hdrstop
  3. #define n 6
  4. #pragma argsused
  5. int X[n]; //имя массива
  6. void main ()
  7. { int i=0, b=0, j=0, min,p; //i-переменная цикла,означающая позицию элемента в массиве;
  8. //b-переменная для сортировки
  9. printf("Vvedite %d chisel: ", n);
  10. for(i=0; i<n; i++)
  11. {printf("\n%d-oe chiclo --> ",i); // \n-означает конец строки
  12. scanf("%d", &X[i]);//&- взятие адреса
  13. }
  14. for (i = 0; i < n; i++)
  15. {printf("%d ", X[i]);
  16. }
  17. printf("\n\n");
  18. for ( i=0; i<n-1 ; i++)
  19. {min=i;
  20. for (j=i+1; j<n; j++)
  21. {if (X[j]<X[min])
  22. {min=j;}
  23. p=X[i];
  24. X[i]=X[min];
  25. X[min]=p;
  26. }
  27. }
  28. getchar();
  29. getchar();
  30. }

Решение задачи: «Вывести результат сортировки простого выбора»

textual
Листинг программы
  1. #include <stdio.h>
  2. #pragma hdrstop
  3. #define n 6
  4.  
  5. #pragma argsused
  6. int X[n]; //имя массива
  7. void main ()
  8. { int i=0, b=0, j=0, min=0,p=0; //i-переменная цикла,означающая позицию элемента в массиве;
  9. //b-переменная для сортировки
  10. printf("Vvedite %d chisel: ", n);
  11. for(i=0; i<n; i++)
  12. {printf("\n%d-oe chiclo --> ",i); // \n-означает конец строки
  13. scanf("%d", &X[i]);//&- взятие адреса
  14. }
  15. for (i = 0; i < n; i++)
  16. {printf("%d ", X[i]);
  17. }
  18. printf("\n\n");
  19.  
  20. for ( i=0; i<n-1 ; i++)
  21. {min=i;
  22. for (j=i+1; j<n; j++)
  23. {if (X[j]<X[min])
  24. {min=j;} }
  25. p=X[i];
  26. X[i]=X[min];
  27. X[min]=p;
  28.  
  29.  
  30. }
  31. for (i = 0; i < n; i++)
  32. {printf("%d ", X[i]);
  33. }
  34. getchar();
  35. getchar();
  36. }

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

  1. В начале кода подключается стандартная библиотека printf.h
  2. Далее, с помощью #pragma hdrstop, останавливается компилятор, чтобы подключать другие заголовочные файлы.
  3. Определяется переменная n типа int со значением 6, которая будет использоваться для определения размера массива.
  4. Создается массив типа int с именем X и размером n.
  5. В функции main() создаются следующие переменные:
    • i - используется как счетчик в цикле, инициализируется значением 0.
    • b - используется для сортировки, инициализируется значением 0.
    • j - используется как счетчик в цикле, инициализируется значением 0.
    • min - используется для хранения минимального значения в текущем проходе цикла, инициализируется значением 0.
    • p - используется для хранения временного значения, инициализируется значением 0.
  6. С помощью цикла for и функции scanf() в массив X загружаются значения, введенные пользователем.
  7. С помощью цикла for и функции printf() выводятся все значения массива X.
  8. С помощью двух вложенных циклов for происходит сортировка массива X методом простого выбора.
    • Внешний цикл идет от i=0 до i<n-1, где n-1 - это количество элементов, которые нужно переставить.
    • Внутренний цикл идет от j=i+1 до j<n.
    • Если X[j] меньше X[i], то меняется значение min, иначе ничего не происходит.
    • Значение min обновляется, и min и p меняются местами с i-ым и min-ым элементами массива X соответственно.
  9. С помощью цикла for и функции printf() выводятся отсортированные значения массива X.
  10. В конце функции main() вызывается функция getchar() для обработки возможных символов в буфере ввода.

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


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

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

13   голосов , оценка 4.308 из 5

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

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

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