Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 8 Noviembre 2012, 19:16 pm



Título: ayuda con vectores c++
Publicado por: indict en 8 Noviembre 2012, 19:16 pm
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.

Código:
#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 :)


Título: Re: ayuda con vectores c++
Publicado por: MikeMonostone en 8 Noviembre 2012, 20:07 pm

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.

Código:
#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;
}


Título: Re: ayuda con vectores c++
Publicado por: rir3760 en 9 Noviembre 2012, 01:51 am
quiero 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
  1. while (cin >> n && n != -1){
  2.   resultado.push_back(n);
  3.   cin >> n;
  4. }

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

Un saludo


Título: Re: ayuda con vectores c++
Publicado por: norris en 15 Noviembre 2012, 09:23 am
Código:
#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");
}