problema con vectores

Iniciado por flony, 5 Noviembre 2012, 02:20 AM

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

flony

hola amigos estaba leyendo el problema,
CitarSe pide la implementación de un programa en lenguaje C para rellenar un vector de 10 números enteros sin que se repita ningún valor. El programa deberá controlar que cuando el usuario introduzca un nuevo valor éste no haya sido introducido previamente; si dicho valor ya existe en el vector el programa deberá volver a pedir otro hasta que el que se introduzca no exista.
que era de otro tema del foro y se me dio por hacerlo en c++ y con 3, 10 es mucho y es en esencia lo mismo...he aquí la cuestión, y es que debo tener un error de lógica porque en el segundo for no lee si son iguales y lo peor compila de 10 + iva  :xD :xD :xD; acá pongo el code que saque
#include<iostream>
using namespace std;

int main ()
{
int n, i;
int vector[3];
for (int i = 0; i<=2; i++)
{
cout<<"ingrese el numero del vector"<<endl;
cin>>n;
vector[i]=n;
for (int i = 0; i<=i-1; i++)
{
if (vector[i]==n)
{
cout<<"este dato ya lo ingreso, ingrese otro"<<endl,
cin>>n;
vector[i]=n;
}
}
}
for (int i = 0; i<=2; i++)
{
cout<<"el vector es" << vector[i]<<";"<<endl;
}
cin.get();
getchar();
return 0;
}

lo de cin.get();
getchar();
es que no me funciona separados y quiero dejar de usar el system("PAUSE");  
si un problema no tiene solucion entonces no es un problema...es algo inevitable

rir3760

Es un error lógico: revisa con cuidado el nombre de la variable utilizada como contador en los dos bucles. De ahí se deriva el error (en el bucle interno).

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

flony

me respondo ya lo saque  ;D ;D ;D
int main ()
{
int n, i, j;
int vector[3];
for (int i = 0; i<=2; i++)
{
cout<<"ingrese el numero del vector"<<endl;
cin>>n;
vector[i]=n;
for (int j = 0; j<=i-1; j++)
{
if (vector[j]==n)
{
cout<<"este dato ya lo ingreso, ingrese otro"<<endl,
cin>>n;
vector[i]=n;
}
}
}
for (int i = 0; i<=2; i++)
{
cout<<"el vector es" << vector[i]<<";"<<endl;
}
cin.get();
getchar();
return 0;
}


era eso rir3760 debia cambiar el nombre de la variable del segundo for
si un problema no tiene solucion entonces no es un problema...es algo inevitable