elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  problema cout's
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema cout's  (Leído 2,484 veces)
pMV2ere

Desconectado Desconectado

Mensajes: 12


Ver Perfil
problema cout's
« en: 2 Diciembre 2012, 19:30 pm »

buenas, no tengo ni idea de pq este programa no me devuelve los cout<<"ok"<<endl;
no tengo ni idea si es que mi codeblocks se ha bugeado o que :/

podeis provar a compilarlo y decirme si os sale algun "ok"? seria de mucha ayuda :)

pd: debeis introducir una sequencia como esta para iniciar el programa: 11 12 13 14 15 -1 12 14 -1(todo seguido)


Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int N=1000;
  6. typedef int VectorC[N];
  7.  
  8. void llegirPremiats(VectorC& numeroP,VectorC& numeroL)
  9. {
  10.    int i=0;
  11.    while(numeroP[i]!=-1){
  12.        cin>>numeroP[i];
  13.        cout<<numeroP[i]<<endl;
  14.        i=i+1;
  15.    }
  16.    i=0;
  17.            cout<<"ok1"<<endl;
  18.    while(numeroL[i]!=-1){
  19.        cin>>numeroL[i];
  20.        cout<<numeroL[i]<<endl;
  21.        i=i+1;
  22.    }
  23.    cout<<numeroL[4]<<"ok1"<<endl;
  24. }
  25. void comparar(VectorC numeroP,VectorC numeroL)
  26. {
  27.    int i=0,j=0;
  28.    cout<<"ok2"<<endl;
  29.    while(numeroP[i]!=-1){
  30.        while(numeroL[j]!=-1){
  31.            cout<<"ok"<<endl;
  32.            if(numeroP[i]==numeroL[j])
  33.                cout<<numeroP[i];
  34.            else
  35.                j=j+1;
  36.        }
  37.        j=0;
  38.        i=i+1;
  39.    }
  40.    cout<<"bfddf"<<endl;
  41. }
  42. int main()
  43. {
  44.    VectorC numeroP,numeroL;
  45.    llegirPremiats(numeroP,numeroL);
  46.    cout<<"ok4"<<endl;
  47.    comparar(numeroP,numeroL);
  48.  
  49. }


En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: problema cout's
« Respuesta #1 en: 2 Diciembre 2012, 22:13 pm »

supongo que en el bucle
Código:
 while(numeroP[i]!=-1){
        cin>>numeroP[i];
        cout<<numeroP[i]<<endl;
        i=i+1;
    }
la idea era que si ingresas un -1 sale del bucle?...porque no deja de cargarme datos, porque i siempre va a valer de 1 en adelante


En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: problema cout's
« Respuesta #2 en: 3 Diciembre 2012, 16:35 pm »

buenas, no tengo ni idea de pq este programa no me devuelve los cout<<"ok"<<endl;
no tengo ni idea si es que mi codeblocks se ha bugeado o que :/
podeis provar a compilarlo y decirme si os sale algun "ok"? seria de mucha ayuda :)
Citar
Tal como está no saldrán nunca los o.k, y el pobre Code::Blocks no tiene culpa de nada.
 Fíjate que haces por ejemplo numeroP[4]=-1 y en la condición, como hay un incremento previo de i se compara numeroP[5]!=-1, y será mucha casualidad que numeroP[5] que aún no ha sido introducido valga -1 .... lo que hace que no salgas del bucle.
Con el arreglo que te dejo ya salen ok1 y ok11, pero tienes que "ajustar" la función comparar ya que te mete en un bucle infinito:
Código
  1. void llegirPremiats(VectorC& numeroP,VectorC& numeroL)
  2. {
  3.    int i=-1;
  4.    do{
  5.        i=i+1;
  6.        cin>>numeroP[i];
  7.        cout<<numeroP[i]<<endl;
  8.  
  9.    }while(numeroP[i]!=-1);
  10.    cout<<"ok1"<<endl;
  11.    i=-1;
  12.    do{
  13.        i=i+1;
  14.        cin>>numeroL[i];
  15.        cout<<numeroL[i]<<endl;
  16.    }while(numeroL[i]!=-1);
  17.    cout<<numeroL[4]<<"ok11"<<endl;system ("pause");
  18. }
Saluditos!.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: problema cout's
« Respuesta #3 en: 4 Diciembre 2012, 17:15 pm »

En el caso de los contadores de los bucles se debe tratar, en lo posible, de que estos almacenen un valor útil, por ejemplo el numero de elementos leídos y almacenados.

Es mejor leer el numero en una variable auxiliar y almacenarlo en el array solo si es distinto de -1:
Código
  1. int i;
  2. int aux;
  3.  
  4. // ...
  5.  
  6. for (i = 0; cin >> aux && aux != -1; i++){
  7.   numeroP[i] = aux;
  8.   cout << numeroP[i] << endl;
  9. }
  10. // El numero de valores almacenados es i

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[?][c++]cout << fu1(5); se cierra el programa
Programación C/C++
anonimo12121 5 5,134 Último mensaje 19 Febrero 2011, 14:01 pm
por anonimo12121
cadena de caracteres con cout « 1 2 »
Programación C/C++
cazagavilan 14 10,021 Último mensaje 15 Abril 2011, 19:11 pm
por cazagavilan
Duda con cin y cout
Programación C/C++
Neptune_one 3 3,057 Último mensaje 4 Septiembre 2012, 08:33 am
por Stakewinner00
C++ , ayuda con cout
Programación C/C++
Azdepredador 2 1,882 Último mensaje 31 Enero 2016, 00:08 am
por ivancea96
Leer cout con .exe
Programación C/C++
coyoteazul2 3 1,629 Último mensaje 8 Noviembre 2016, 18:49 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines