Вывести результат сортировки простого выбора - C (СИ)
Формулировка задачи:
я сделала сортировку, помогите с выводом, не пойму как его написать:
#include <stdio.h> #pragma hdrstop #define n 6 #pragma argsused int X[n]; //имя массива void main () { int i=0, b=0, j=0, min,p; //i-переменная цикла,означающая позицию элемента в массиве; //b-переменная для сортировки printf("Vvedite %d chisel: ", n); for(i=0; i<n; i++) {printf("\n%d-oe chiclo --> ",i); // \n-означает конец строки scanf("%d", &X[i]);//&- взятие адреса } for (i = 0; i < n; i++) {printf("%d ", X[i]); } printf("\n\n"); for ( i=0; i<n-1 ; i++) {min=i; for (j=i+1; j<n; j++) {if (X[j]<X[min]) {min=j;} p=X[i]; X[i]=X[min]; X[min]=p; } } getchar(); getchar(); }
Решение задачи: «Вывести результат сортировки простого выбора»
textual
Листинг программы
#include <stdio.h> #pragma hdrstop #define n 6 #pragma argsused int X[n]; //имя массива void main () { int i=0, b=0, j=0, min=0,p=0; //i-переменная цикла,означающая позицию элемента в массиве; //b-переменная для сортировки printf("Vvedite %d chisel: ", n); for(i=0; i<n; i++) {printf("\n%d-oe chiclo --> ",i); // \n-означает конец строки scanf("%d", &X[i]);//&- взятие адреса } for (i = 0; i < n; i++) {printf("%d ", X[i]); } printf("\n\n"); for ( i=0; i<n-1 ; i++) {min=i; for (j=i+1; j<n; j++) {if (X[j]<X[min]) {min=j;} } p=X[i]; X[i]=X[min]; X[min]=p; } for (i = 0; i < n; i++) {printf("%d ", X[i]); } getchar(); getchar(); }
Объяснение кода листинга программы
- В начале кода подключается стандартная библиотека printf.h
- Далее, с помощью #pragma hdrstop, останавливается компилятор, чтобы подключать другие заголовочные файлы.
- Определяется переменная n типа int со значением 6, которая будет использоваться для определения размера массива.
- Создается массив типа int с именем X и размером n.
- В функции main() создаются следующие переменные:
- i - используется как счетчик в цикле, инициализируется значением 0.
- b - используется для сортировки, инициализируется значением 0.
- j - используется как счетчик в цикле, инициализируется значением 0.
- min - используется для хранения минимального значения в текущем проходе цикла, инициализируется значением 0.
- p - используется для хранения временного значения, инициализируется значением 0.
- С помощью цикла for и функции scanf() в массив X загружаются значения, введенные пользователем.
- С помощью цикла for и функции printf() выводятся все значения массива X.
- С помощью двух вложенных циклов 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 соответственно.
- С помощью цикла for и функции printf() выводятся отсортированные значения массива X.
- В конце функции main() вызывается функция getchar() для обработки возможных символов в буфере ввода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д