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 :)
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;
}
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:
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:
while (cin >> n && n != -1)
resultado.push_back(n);
Un saludo
#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");
}