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;
}