#include <stdio.h>
#define M 100
void leer_e(int t[], int &n, int &e);
bool u_s_o_d(int &n);
void tratar_t(int t1[], int &n1, int t2[], int &n2);
void resultado(int t[], int &n);
void copiar(int t1[], int t2[], int &n1, int &n2);
int main(){
int t1[M], t2[M]; //t1 = serie actual, t2 = serie mas larga
int n1=0, n2=0; //longitud de las series
int x; //lector
printf("Intro. serie de enters acabada en 0:n"); scanf("%d", &x
); //inicializacion del primer entero leer_e(t1, n1, x); //inicializacion de la 1a serie
while(!u_s_o_d(n1)){ //ultima serie ordenada decrec.
tratar_t(t1, n1, t2, n2);
leer_e(t1, n1, x);
}
resultado(t2, n2);
return 0;
}
void leer_e(int t[], int &n, int &e){
int i=0;
while(t[i]<=e || e!=0){
t[i]=e;
i++;
}
n=i; //longitud de t1
printf("%d", n
); //para comprobar que valor tiene n
}
bool u_s_o_d(int &n){
return(n==0);
}
void tratar_t(int t1[], int &n1, int t2[], int &n2){
if(n1>n2) copiar(t1,t2,n1,n2);
//else no hacer nada, la serie mas larga es la ultima t2
}
void resultado(int t[], int &n){
int i;
printf("nSerie mes larga: %dn", n
); for(i
=0; i
<=n
; i
++) printf("%d ", t
[i
]); }
void copiar(int t1[], int t2[], int &n1, int &n2){
int i, j=0;
for(i=0; i<=n1; i++){
t1[i]=t2[j];
j++;
}
n2=j;
}