Encontrar pares de números crecientes:
#include lt;stdlib.hgt;
#include lt;time.hgt; /p>
int findAscendPair(int x[], int y[], int *num, int start[])
{
int maxNum = 0; Longitud máxima actual
int startIndex = 0; // Posición inicial
int i, k = 0 // Incrementando el número de pares
int cx =; x[startIndex], cy = y[startIndex]; // Coordenadas actuales
for(i = 1; i lt; *num; i) // Encuentra pares crecientes
{
if((x[i] lt; cx) || (y[i] lt; cy)) // Bandera de fin de secuencia creciente: hay una secuencia no creciente en x o y p >
{
if((i-startIndex) gt; maxNum) // si longitud actual gt; maxLength actual
{
k = 0 ; // Incrementa el número complejo logarítmico 0
start[k ] = startIndex; // Registra la posición inicial, incrementa k
maxNum = i - startIndex; longitud máxima actual
}
if ((i-startIndex) == maxNum) // Si es igual a la longitud máxima actual
start [k] = startIndex; // Registrar la posición inicial, k incrementos
startIndex = i; // Modificar la posición inicial
}
cx = x[i]; / Modificar las coordenadas actuales
cy = y[i];
}
*num = maxNum. // Longitud máxima
return k; // Incrementa el número de pares
}
*num = maxNum.
main()
{ p>
int x[MAXNUM], y[MAXNUM]; // Matriz de coordenadas
int start[MAXNUM] // Matriz de posición de coordenadas inicial
int i, j ; // variables auxiliares
int num = MAXNUM; // longitud máxima
int count; // número de logaritmos ascendentes
srand( (sin signo) time(NULL) ) ; // toma la semilla de tiempo
for(i = 0; i lt.MAXNUM; i ) // Genera 100 registros
{
x[i ] = 1.0*rand()/RAND_MAX * 1000
y[;
i] = 1.0*rand()/RAND_MAX * 1000;
printf("[d, d],", x[i], y[i]); (i5==4) printf("\n");
}
count = findAscendPair(x, y, amp; num, start); /p>
printf("/nEl conteo máximo ascendente = d, longitud = d\n", conteo, num // Conteo de salida, longitud
for(i = 0; i lt); ; count; i) // Genera todos los pares ascendentes
{
for(j=start[i]; jlt; start[i] num.j)
printf("[d, d],", x[j], y[j]);
printf("\n"); >
}
}