• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

К-ая Порядковая Статистика

  • Автор темы ruslana
  • Дата начала
R

ruslana

подскажите что не правильно
C++:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
n=StrToInt(Edit1->Text);
StringGrid1->ColCount=n;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(int i=0;i<n;i++)
a[i]=StrToFloat(StringGrid1->Cells[i][0]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
m=StrToFloat(Edit6->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
long long nth_element(int x, int l,int r,int k, int m);
{
long long x=(a[n-1]+a[0])/2;
int i=0,j=n-1;
while(i<=j)
{
while(a[i] < x) i++;
while(a[j] > x) j--;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
if(0<=m && m<=j)
return nth_element(,j,m);
if( i<=m && m<=n-1)
return kth(i,n-1,m);
return a[m];
}
Edit2->Text=FloatToStr(a[m]);
}

//---------------------------------------------------------------------------
 
R

rrrFer

Отсортируй массив, возьму k-тый элемент.

Это МБ не самый лучший вариант, хотя если k может быть большим - то лучший, но точно самый простой.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!