Вывести результат сортировки простого выбора - 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() для обработки возможных символов в буфере ввода.