Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/11/2014, 06:43
Frnxu
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 10 años
Puntos: 0
Crear programa que use el método RLE

Hola, buenas!

Os escribo a ver si me dais un poco de luz sobre la resolución de este ejercicio que me han propuesto en la facultad. Sé que es relativamente sencillo, pero será que hoy estoy más espeso de lo normal, y no consigo hacerlo sin usar temario más avanzado (cosa que no se permite).
Dice así:

Realizar un programa que lea una secuencia de números naturales terminada con un número negativo y la codifique mediante el método RLE.
Por ejemplo:
Entrada: 1 1 1 2 3 3 4 5 5 5 6 -1
Salida: 3 1 1 2 2 3 1 4 3 5 1 6


Código C++:
Ver original
  1. int main(){
  2.    int numero, numero_2, suma;
  3.  
  4.    cout << "Introduzca numeros(-1 para terminar): \n";
  5.    cin >> numero;
  6.  
  7.     while (numero != -1){
  8.         suma = 1;
  9.         cin >> numero_2;
  10.      
  11.         while (numero_2 == numero){
  12.             suma ++;
  13.             cin >> numero_2;
  14.         }
  15.     cout << numero << " " << suma <<endl;
  16.     numero = numero_2;
  17.    }
  18.  
  19. }


El problema de esta aproximación es que no trabaja del todo bien y muestra por pantalla cada vez que se cambia de número cuando debería dar la salida que he indicado antes. Con el uso de arrays y demás sería trivial pero no puedo usar nada de eso.

Si a alguien se le ocurre algo..
Muchas gracias!