Título: La serie mas larga? Publicado por: LiLou en 15 Febrero 2011, 19:13 pm Hola. A ver si me podéis ayudar con éste código que no acabo de entender.
Entrada: Secuencia de enteros acabada en 0. Salida: La serie de enteros ordenada decrecientemente más larga. Ejemplo: 10 4 2 4 3 1 1 0 La serie mas larga seria 4 3 1 1 Ésta es la funcion main (dada por mi profesora): Código
Las acciones leer_e, u_s_o_d, y resultado, ya las tengo (si hace falta, os las muestro). El problema creo que reside en el "núcleo" del programa, que es la acción tratar_t. Mi version es tal que así: Código
Os explico. Se trata de ir comprobando cual es la serie mas larga, copiandola en t2, hatsa que se llegue al final de la secuenia. n1 representa la longitud de la serie ordenada decr. y se compara con n2 (la última serie ordenada decr. mas larga). Si resulta que n1 es mas grande que n2, entonces se ha de copiar la serie(actual) t1 con longitud n1 en t2. Entonces mi pregunta es, se copia bien t1 en t2? Si creéis que el algoritmo esta bien, os mostraré el resto del programa para encontrar el problema, pues el resultado me sale siempre 0. Título: Re: La serie mas larga? Publicado por: N0body en 15 Febrero 2011, 21:18 pm Si no sabemos qué es lo que hacen tus otras funciones, decir que ayudemos sería como ofuscar el código... es posible, pero lo mejor sería que nos facilites el trabajo si es que te vamos a ayudar...
Por lo menos pon una descripcion de que hace cada función. Por ejemplo, yo al principio supuse que leer_e ingresaba los numeros en tl, pero también la usas más abajo, además no entiendo para que es el argumento x, ni por que el primer entero lo introduces en un scanf en el main y no lo haces todo de una en leer_e... Y obviamente que deduzco quecuando le pasas nl como argumento, en la función está definido por referencia, de modo que la función pueda inicializarla... Osea, puede ser un error en el ingreso, es muy importante que facilites las funciones, después de todo, ¿cuanto tiempo te puede llevar copiar y pegarlas? Directamente pon todo el código, incluyendo las definiciones que hagas al principio... Título: Re: La serie mas larga? Publicado por: LiLou en 15 Febrero 2011, 23:14 pm Es que no quería "sobrecargar" el codigo y centrarme en lo importante, pero tienes razón, ahora que me leo no se entiende muy bien sin el resto.
Aquí esta todo: Código
Ejecutadlo para que veáis vosotros mismos cual es el resultado. Un saludo. Edit: Rectifico, en la funcion u_s_o_d, el parametro no es el lector x, sino n1. |