Hola, tengo un problema con un programa en C++, otra vez
![más risas [+risas]](/images/smilies/nuevos/risa_ani3.gif)
. El programilla en question debe de hacer lo siguente:
Escribir un programa que lea una secuencia de números enteros
en el rango de 0 a 100 terminada en un numero mayor que 100 o menor que
0 y encuentre la subsecuencia de numeros ordenada, de menor a mayor, de
mayor longitud, dentro dicha secuencia. El programa dara como salida la
posicion donde comienza la subsecuencia y a continuacion su longitud. En
el siguiente ejemplo, la mayor secuencia creciente es 7 40 45 45 73 73
que empezo en la posición 3 y tiene una longitud de 6.
Entrada: 23 25 7 40 45 45 73 73 71 4 9 101
Salida: 3 6
El codigo que llevo hasta ahora es el siguiente:
#include <iostream>
using namespace std;
int main(){
int primero, segundo, contador, inicio;
cin >>primero>>segundo;
contador=0;
inicio=0;
while(primero>0 && primero<100){
if (segundo>=primero){
while(contador==0){
contador++;
inicio=contador;
}
contador++;
}
primero=segundo;
cin>>segundo;
}
cout << inicio<<" "<<contador;
cout << "\n\n";
system("pause");
}
Lo que consigo hacer es que muestre 1 y 9 (con la secuencia de ejemplo), es decir, cuenta la primera vez que incrementa, en este caso 1, y las veces que incrementa en total. No puedo utilizar ni clases, ni funciones ni vectores. Se que esto lo debo de hacer yo para aprender, pero es que no consigo averiguar como hacerlo y es el ultimo ejercicio que me queda. No pido que me den un codigo y ya esta, sino una ayudita para ver si consigo sacarlo. Hace tiempo abri un hilo para una consulta de un programa y desde entonces me puse a practicar y estudiar, no me hizo falta ayuda en ningunos de los programas que he hecho y no tenia pensado abrir un hilo, pero no consigo averiguar hacer este y me decidi por abrirlo.
Un saludo.