codice:
#include <stdlib.h>
#include <stdio.h>
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
int * genRPerm(unsigned int n){
int *vect = (int *)malloc(n * sizeof(int));
int i;
for(i = 0; i < n; i++)
vect[i] = i;
for (i = n-1;i >= 0;i--)
swap(&vect[i],&vect[(int) ((rand()/(1.0 + RAND_MAX)) * (i+1))]);
return vect;
}
int main(){
unsigned int n = 0;
printf("Inserire il numero di numeri da generare: ");
scanf("%d", &n);
int *perm = genRPerm(n);
int i;
printf("\n\nPermutazione generata:\n\n");
for(i = 0; i < n; i++)
printf("%d ", perm[i]);
free(perm);
return 0;
}