Primero: <iostream.h> debe ser <iostream>.
Segundo: La función
Main debe retornar un valor entero:
return 0.
Tercero: No especificaste el espacio de nombres. En este caso es
std:
using namespace std; Cuarto: system("pause"); Solo funciona en Windows. Si querés que la pantalla no se cierre automáticamente podés usar
cin.get(); Quinto: Las variables deberían ser más específicas. Siempre veo que usan
i, j, n, v, es mucho más entendible usar palabras completas. Yo generalmente a las variables auxiliares les pongo letras comenzando desde la "
a".
Sexto: Los números se muestran desordenados porque lo que hace el último ciclo es verificar si el elemento actual se va a repetir más adelante, si es así no lo muestra, entonces solo muestra
las últimas repeticiones y no las primeras.
Séptimo: Si bien a veces compila, lo siguiente es erróneo:
Lo ideal es hacerlo con memoria dinámica, pero también podés declarar un vector con un número
máximo de elementos, y no permitir que se ingresen más que esa cantidad.
Último: Mejoré un poco el código:
Código C++:
Ver original#include<iostream>
using namespace std;
int main(){
short cantidad; // Cantidad de elementos
// Ingresar cantidad de elementos
cout << "Digite la cantidad de numeros: "; cin >> cantidad;
/* Esto aunque a veces compile es completamente ERRONEO. La forma
correcta es con memoria dinamica o declarando un vector con un
número máximo de elementos. */
// short vector[ cantidad ];
short *vector = new short[ cantidad ]; // vector dinámico
// Ingresar números
for( short a = 0; a < cantidad; a++ ){
cout << "Digite el elemento de la posicion " << a+1 << ": ";
cin >> vector[ a ];
}
// Mostrar números
cout << "La lista de numeros sin repetir es: " << endl;
for( short a = 0; a < cantidad; a++ ){
bool repetido = false;
// Recorrer todos los elementos ANTERIORES al actual.
for( short b = 0; b < a; b++ ){
if( vector[ a ] == vector[ b ] ) repetido = true;
}
// Se muestra el elemento solo si no está repetido
if( !repetido ) cout << vector[ a ] << "\t";
}
delete[] vector; // Liberar memoria
cout << endl; // Último fin de linea
cin.get();
return 0;
}
Saludos!.