Итак, мне нужно отсортировать массив целых чисел так, чтобы каждое меньшее число, чем какое-либо число scanf
'd целое, находится слева, эта переменная набора находится посередине, а каждое большее число справа , У меня есть левая и правая часть, но я не уверен, как сделать так, чтобы переменная была в середине .. какие-нибудь идеи?C Сортировка массива целым числом
#include <stdio.h>
int main()
{
int y, i, k, temp;
printf("give integer\n");
scanf("%d", &y);
int x[10] = {5,8,9,4,2,3,2,4,5,6};
i=0;
k=1;
while(i<10)
{
while(x[i]>y&&k<10)
{
temp=x[k];
x[k]=x[i];
x[i]=temp;
k++;
}
i++;
k=i+1;
}
for(i=0; i<10; i++)
{
printf("x[%d]=%d\n", i, x[i]);
}
}
Пример ввода/вывода:
input: x[i]={5,2,1,6,7,3,2,4,5,6} y=5
output: x[i]={2,1,4,3,2,5,5,7,6,6}
Посмотрите на это [Возможная реализация 'std :: partition'] (http://en.cppreference.com/w/cpp/algorithm/partition) Его' C++ ', но вы можете выяснить, что делать – P0W
Can вы уточните свой вопрос? Похоже, вы в основном просите нас отсортировать массив, который можно сделать на месте с помощью нескольких методов, сортировки кучи, быстрой сортировки, сортировки вставки и т. Д. – AndyG
@ AndyG он хочет '2,2,3,4 , 4, y, 5,5,6,8,9' –