Red de conocimiento informático - Aprendizaje de código fuente - Encontrar pares de números crecientes:

Encontrar pares de números crecientes:

#include lt; stdio.hgt;

#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

{

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()

{

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"); >

}

}