Scritto al volo, quindi con possibili errori.
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
/* funzione che ritorna 1 se "num" e' presente in "array"
* e 0 se invece non e' presente */
int controlla_presenza(int *array, int size, int num)
{
int i;
for(i=0; i<size; ++i)
{
if(array[i] == num)
return 1;
}
return 0;
}
/* funzione che genera un array di numeri casuali e non ripetuti */
int * genera_casuali(int size)
{
int *array = (int *) malloc(size * sizeof(int));
int i, generato, riempito = 0;
for(i=0; i<size; ++i)
{
array[i] = 0; /* inizializzazione a zero */
}
for(i=0; i<size; ++i)
{
do
{
generato = rand() % MAX + 1;
} while(controlla_presenza(array, size, generato) == 1);
array[riempito++] = generato;
}
return array;
}
void stampa_array(int *array, int size)
{
int i;
for(i=0; i<size; ++i)
printf("%d\n", array[i]);
}
int main()
{
srand(time(NULL));
int size;
printf("Inserire dimensione: ");
scanf("%d", &size);
int *casuali = genera_casuali(size);
stampa_array(casuali, size);
return 0;
}