Numeros Aleatorios en un arreglo - se me repiten dos

mota008
02 de Mayo del 2005
Necesito un programa que me genere los numeros aleatorios del 1 al 20 sin que se repitan y en el programa acontinuacion se repiten 2 o mas numeros dos veces o mas. no se si alguien me pueda ayudar con eso. Gracias uso el Borland C++, no se si alguien me pueda decir donde esta la falla.

#include <conio.h>
#include <stdlib.h>
#include <iostream.h>

void arr(int arr[] )
{
int n;
int m;
for (int i=0;i<20;i++)
{

for (int j=0;j<20;j++)
{
srand( rand() );
n= (rand()%20+1);
if(n==arr[j-1])
m=0;
n=n+1;
if (m==0)
i++;
else
arr [i]=n;

}

}
}


void main ()
{
int n, i,o, x, arreglo[20];
for (int h=0; h<20;h++)
arreglo [h]=0;
arr (arreglo);
for (int k=0; k<20; k++)
cout<<arreglo[k]<<endl;

getche();
}

Noel Solw
02 de Mayo del 2005
// program sorteo.cpp
// written in borland c++, ver 4.52
// 2/5/2005

#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

const int N = 20;

void Init(int *a)
{
for(int i = 0;i < N;i++)
a[i] = i + 1;
} // INIT

void Sorteo(int *a)
{
randomize();
for(int i = N-1;i >= 0;i--)
{
int k = random(i);
cout << a[k];
if(i)
cout << ',';
for(int j = k;j < N-1;j++)
a[j] = a[j+1];
}
cout << endl << endl;
} // SORTEO

int main()
{
int a[N];
Init(a);
Sorteo(a);
cout << "end of program - good bye ! ! ! " << endl;
return 0;
} // MAIN