Salve a tutti.
Mi trovo a combattere con una porzione di codice che devo adoperare per emulare una tipologia di crittografia.

codice:
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>

#define MAX 26
#define DIM 300

int chiave[MAX];
FILE* f;
char a[DIM];
int i,j,t;
char alfabeto[] ={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

int main(int argc,char *argv[]){

    chiave[0] = rand()%26+1;

    for(i=1;i<MAX;i++){
        for(j=0;j<i;j++){
        t = rand()%26+1;
        if(chiave[j]!=t && chiave[j]!=chiave[i-j])
            chiave[i]=t;
        }
    }
    
    
    

    for(i=0;i<MAX;i++){
        printf("Num %d  della sequenza CHIAVE: %d\n",i+1,chiave[i]);
    }
    
    f=fopen(argv[1],"rw");  //controllo sull'apertura del file
    
    if(f==NULL){
        perror("Impossibile aprire il file\n");
    	exit(1);
	}

	if(f){
            printf("\n\nTesto in chiaro: ");
            while(!feof(f)){
                fscanf(f,"%s\t",a);
		printf("%s \n",a);
		}
	fclose(f);
	}
     
}
Il codice è chiaramente incompleto a causa della sequenza random che ottengo una volta eseguito il tutto.Vi spiego:
quello che devo fare è creare una chiave composta da 26 interi (tanti quanti sono i caratteri nell'alfabeto italiano + jkxwy)
il mio problema è che non capisco come poter gestire gli interi ottenuti ad ogni istanza del ciclo for dalla funzione random.perche in pratica io dovrei confrontarli con tutti i valori che ho già memorizzato in chiave[i] fino all'indice dell'istanza corrente.Al momento riesco ad evitare che numeri random vicini uguali non vengano memorizzati. A me servono però 26! permutazioni possibili ottenibili soltanto se il random riesce ad essere gestito affinchè non consenta di memorizzare nessuna "copia" di intero nella chiave[i].



Una piccola nota. se provate questo codice su riga di comando dovete aggiungere un path di file da aprire es /Desktop/prova.txt