Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 6 Julio 2013, 20:02 pm



Título: suma de una cola
Publicado por: indict en 6 Julio 2013, 20:02 pm
Hola,

no entiendo porqué el programa no muestra la suma de una cola. 

Gracias :D

Código
  1. #include<iostream>
  2. #include<queue>
  3.  
  4. using namespace std;
  5.  
  6. int suma(queue<int>&c){
  7.    int s=0;
  8.    while(!c.empty()){
  9.    s=s+(c.front());
  10.    c.pop();
  11.                      }
  12.    return s;
  13.    }
  14.  
  15. int main() {
  16.    queue<int>c;
  17.    int e;
  18.    cout<<"introduzca los elementos"<<endl;
  19.    cin>>e;
  20.    while(e!=0){
  21.                c.push(e);
  22.                cin>>e;
  23.                }
  24.    cout<<"La cola es"<<endl;
  25.    cout<<"[";
  26.    while(!c.empty()){
  27.    cout<<c.front()<<" ";
  28.    c.pop();
  29.                      }
  30.    cout<<"]";
  31.    cout<<endl;
  32.    int s=suma(c);
  33.    cout<<"Y la suma es"<<"  "<<s<<endl;
  34.  
  35.  
  36.  
  37.  
  38.    system("pause");
  39.    return 0;
  40.    }
  41.  


Título: Re: suma de una cola
Publicado por: satu en 6 Julio 2013, 20:35 pm
Buenas!!

No muestra la suma porque cuando entra en la función "suma" la cola está vacía!!!! La vacías cuando la muestras jeje

Saludetes


Título: Re: suma de una cola
Publicado por: indict en 6 Julio 2013, 20:46 pm
Gracias satu no había caído :D
Lo único que ahora si me muestra la suma pero no la cola.

Código
  1. #include<iostream>
  2. #include<queue>
  3.  
  4. using namespace std;
  5.  
  6. int suma(queue<int>&c){
  7.    int s=0;
  8.    while(!c.empty()){
  9.    s=s+(c.front());
  10.    c.pop();
  11.                      }
  12.    return s;
  13.    }
  14.  
  15. int main() {
  16.    queue<int>c;
  17.    int e;
  18.    cout<<"introduzca los elementos"<<endl;
  19.    cin>>e;
  20.    while(e!=0){
  21.                c.push(e);
  22.                cin>>e;
  23.                }
  24.  
  25.  
  26.  
  27.    int s=suma(c);
  28.    cout<<"Y la suma es"<<"  "<<s<<endl;
  29.    cout<<endl;
  30.  
  31.    cout<<"La cola es"<<endl;
  32.    cout<<"[";
  33.    while(!c.empty()){
  34.    cout<<c.front()<<" ";
  35.    c.pop();
  36.    cout<<"]";
  37.                      }
  38.  
  39.  
  40.  
  41.    system("pause");
  42.    return 0;
  43.    }
  44.  


Título: Re: suma de una cola
Publicado por: CCross en 6 Julio 2013, 21:15 pm
Te lo he dejado asi creo que funciona, no lo he probado

Código
  1. #include<iostream>
  2. #include<queue>
  3.  
  4. using namespace std;
  5.  
  6. int suma(queue<int>&c)
  7. {
  8.    int s=0;
  9.  
  10.    while(!c.empty()){
  11.      s=s+(c.front());
  12.      cout << "[" << c.front() << "]" << " ";
  13.      c.pop();
  14.    }
  15.  
  16.    return s;
  17. }
  18. int main()
  19. {
  20.    queue<int>c;
  21.    int e, s;
  22.  
  23.    cout << "introduzca los elementos" <<endl;
  24.    cin >> e;
  25.  
  26.    while(e!=0){
  27.        c.push(e);
  28.        cin>>e;
  29.    }
  30.    cout << "La cola es" << endl;
  31.    s = suma(c);
  32.  
  33.    cout << endl;
  34.  
  35.    cout << "Y la suma es" <<"  " << s << endl;
  36.  
  37.    return 0;
  38. }
  39.  

Saludos  :)


Título: Re: suma de una cola
Publicado por: indict en 6 Julio 2013, 21:18 pm
¡¡Gracias!! :DD