ayuda con vectores c++

Iniciado por indict, 8 Noviembre 2012, 19:16 PM

0 Miembros y 1 Visitante están viendo este tema.

indict

Hola,
quiero que dada una secuencia de números se imprima por pantalla.

Hice lo siguiente, (no puedo usar el bucle for)

Si pudieras corregir me la errada.

#include<iostream>
#include<vector>
using namespace std;
vector<int>leer_seq_i(){
int n;
vector <int> resultado;

while(cin>>n && n!=-1){
             resultado.push_back(n);
             cin>>n;
}
return resultado;
}

int main(){
    vector<int> v=leer_seq_i();
    int i=0;
    while(i<v.size()){
                      cout<<v[i]<<endl;
                      ++i;}

system ("PAUSE");
return 0;
}


Gracias por la ayuda :)

MikeMonostone


Este hace lo que quieres que haga.

Observaciones:
1. Escribe de manera clara los bloques de código, es decir, da a cada bloque su separación para que se pueda apreciar la lógica del mismo.

2. El problema de tu código era la ubicación de ciertas sentencias y una que otra que simplemente estaba demás, por favor estudia el código que aquí corregí para que veas esto por ti mismo.


#include<iostream>
#include<vector>
using namespace std;

int main(){
    vector<int>lista;
    int numero;


    while(numero!=-1)
    {
        cin>>numero;
        lista.push_back(numero);
    }



    int p=0;

    while(p<lista.size())
    {
       cout<<lista[p]<<endl;
       p = p+1;
    }

return 0;
}
[SK-DOOM] Pensé que lo que haría sería fingir ser uno de esos sordomudos.

rir3760

Cita de: indict en  8 Noviembre 2012, 19:16 PMquiero que dada una secuencia de números se imprima por pantalla.

Hice lo siguiente, (no puedo usar el bucle for)
En la función "leer_seq_i" tienes dos lecturas "cin >> n" en el bucle:
Código (cpp) [Seleccionar]
while (cin >> n && n != -1){
   resultado.push_back(n);
   cin >> n;
}


Solo necesitas la que forma parte de la condición, la que esta en su cuerpo debes eliminarla. El bucle corregido:
Código (cpp) [Seleccionar]
while (cin >> n && n != -1)
   resultado.push_back(n);


Un saludo
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

norris

#include <stdio.h>
#include <stdlib.h>
int main()
{
int t[10],ind,lon,num,aux;
ind=0;
do{
printf ("Introduce un número");
scanf("%d",&num);
t[ind]=num;
ind=ind+1;
}while(ind<10);
/* Al salir del anterior bucle ind está apuntando al 10, es decir,
el número de elementos que tiene el array.  */

system("PAUSE");
}