Hola, me gustaría realizar un programa que crease un vector hasta cierto 'num', y los números que lo componen están entre 0 y num - 1. Ademas no ha de repetirse ningún numero dentro del vector.
Mi intento de este programa es el siguiente:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
const int MAX = 80;
typedef int Vector[MAX];
void GenerarVector(Vector v, int num);
void MostrarVector(const Vector v, int num);
int main (void)
{
Vector v;
int num;
Presentacion();
cout << "Dame numero de elementos del vector: ";
cin >> num;
cout << endl;
if(num < 0)
cout << "El numero no es positivo, no se puede generar el vector";
else
{
GenerarVector (v, num);
cout << "El vector generado es: ";
MostrarVector (v, num);
}
return 0;
}
void Presentacion(void)
{
cout << "Este programa genera vector de una cantidad de numeros que el usuario "
cout << "indique, comprendidos entre 0 y el numero indicado, sin repetirse ningún"
cout << " numero a lo largo del vector" << endl << endl;
return;
}
void GenerarVector(Vector v, int num)
{
int numvec;
bool numrep = false;
int i = 0;
int j = 0;
srand(time(NULL));
do
{
numvec = rand() % num;
do
{
if(numvec = v[j])
numrep = true;
else
numrep = false;
j++;
}
while(j <= i && numrep == false);
j = 0;
if(numrep == false)
{
v = numvec;
i++;
}
}
while(i < num);
return;
}
void MostrarVector(const Vector v, int num)
{
int contador = 0;
int i = 0;
while(contador < num)
{
cout << v << " ";
i++;
contador++;
}
return;
}
No informa de ningún error pero al ejecutarse se queda congelado. ¿Alguien sabe cual es el problema?
Me imagino que sera por la función 'GenerarVector'.
Gracias.