Из того, что я понимаю, вы не хотите сортировать, но найдите point
с максимальным x
и убедитесь, что оно хранится в p[n-1]
.
struct point
{
float x;
float y;
} p[1000];
Вот как этоможет выглядеть так:
void max(struct point *t, int ctr)
{
struct point temp;
int i;
for(i = 0; i < (ctr - 1); i++)
{
if (t[ctr - 1].x < t[i].x)
{
temp = t[ctr - 1];
t[ctr - 1] = t[i];
t[i] = temp;
}
}
}
Эта функция принимает struct point *t
в качестве аргумента, который является указателем на первый point
, как и p
.t[i]
равно struct point
в индексе i
(не указатель на struct point
), поэтому вы используете .
вместо ->
при доступе к его членам.И поскольку вы индексируете с нуля, последний элемент массива размером n
имеет индекс n-1
, то есть место, где будет храниться struct point
с самым высоким x
.
Пример:
int main ()
{
for(int i = 0; i < 99; i++)
{
p[i].x = 1;
p[i].y = 3;
}
p[4].x = 7;
int n = 100;
max(p, n);
cout << p[n - 1].x;
return 0;
}
вывод: 7