Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Lamarkus en 4 Octubre 2010, 15:25 pm



Título: ejercicio en c
Publicado por: Lamarkus en 4 Octubre 2010, 15:25 pm
Hola muy buenas el ejercicio dice lo siguiente dada una secuencia de numeros acabada en -1, encontrar los numeros que sean consecutivos.

Este es el codigo que tengo hecho pero no se donde esta el error :S cuando cargo el programa m sale numeros del 0al 9 y m salen numeros repetidos que no e puesto porfavor si alguno m puede echar un cable muchas gracias.

Código
  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int n,sum,max=0,i;
  5.  
  6. cout<<"Introduce una secuencia de enteros acabada en -1: "<<endl;
  7. cin>>n;
  8.  
  9. while(n!=-1){
  10.  
  11. for(i=0;i<10;i++){
  12. for(sum=0;n==i;sum++){
  13.  
  14. cin>>n;
  15. }
  16.  
  17. if(max<sum) max=sum;
  18. if(max>1) cout<<"El numero "<<n<<" sale "<<max<<" veces consecutivas"<<endl;
  19. }
  20.  
  21. }
  22.  
  23.  
  24. system("pause");
  25. return 0;
  26. }
  27.  

merci i disculpen las molestias




Título: Re: ejercicio en c
Publicado por: [L]ord [R]NA en 4 Octubre 2010, 16:11 pm
Etiquetas Geshi.


Título: Re: ejercicio en c
Publicado por: Khronos14 en 4 Octubre 2010, 16:40 pm
Por lo que entendí del enunciado del ejercicio:

Citar
Dada una secuencia de numeros acabada en -1, encontrar los numeros que sean consecutivos.

Lo que se me ocurre es ir leyendo los números que se introducen y guardarlos en un array hasta que se introduzca -1, luego muestras por pantalla los números consecutivos.

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8. int count = 0, lista[29];
  9.  
  10. cout << "Introduce una secuencia de enteros acabada en -1: " << endl;
  11.  
  12. do{
  13.    cin >> lista[count];
  14.    count++;
  15. }while (lista[count-1] != -1 && count < 30);
  16.  
  17. int u, i = 0;
  18.  
  19. while (i < count - 1){
  20.        u = 0;
  21.        while (lista[i + u] + 1 == lista[i + u + 1]){
  22.            cout << lista[i + u] << ",";
  23.            u++;
  24.        }
  25.        if (u > 0){
  26.          cout << lista[i + u] << " son consecutivos" << endl;
  27.          i = i + u;
  28.        }
  29.        else i++;  
  30. }
  31.  
  32.  system("pause>nul");
  33.  return 0;
  34. }
  35.  

Saludos.