innanzitutto grazie della risposta!
intrigante il codice che hai postato;avrei un paio di domande da novellino da farti:
1)per fare il tutto in c++ sono indispensabili stdlib.h e time.h (stdio.h lo cambio con iostream.h)?
2)typedef struct{/*qualcosa*/} NOMEARBITRARIO; è identico al struct NOMEARBITRARIO {/*qualcosa*/}; che sono abituato a usare?
3)for (e->size--; i < e->size; i++) una roba del genere non l'avevo mai vista...il primo parametro(non si chiama parametro, ma sinceramente non conosco il nome corretto) del for non dovrebbe essere l'elemento da confrontare,cioè i, che è anche quello su cui agisce il terzo parametro? cioè io al posto di e->size-- potrei metterci una cosa qualunque,chessò int boh=2222222;?



Se non ti dispiace poi, vorrei tornare un attimo al codice che avevo scritto nel primo post(mi stava simpatico, vorrei vederlo funzionare), in pratica serve (almeno nelle intenzioni) a generare un numero casuale, metterlo nell'array(primo ciclo for) e confrontarlo con i numeri che lo precedono(secondo ciclo for nidificato); se esiste già lo cambio finchè non esce un numero diverso(nel while). Però, ora che mi ci hai fatto ragionare su, l'errore logico è che ogni volta che cambio numero nel while dovrei ricontrollarlo da capo con tutti i numeri, mentre io continuo il controllo solo coi numeri che restano, come se niente fosse.....
variando leggermente il codice, è uscita sta roba qua(ho l'impressione di aver impapocchiato tutto):

codice:
void creaNumeroComputer(int computer[5]){
    for(int i = 0; i<5; i++){
        computer[i] = rand() % 10;
        for(int j=i-1; j>=0; j--){
            int k=j;
            while(computer[i]==computer[j]) {
                computer[i]=rand() % 10;
                k=i-1;
            }
            j=k;
        }
    }
}
solo che addirittura a volte mi salta fuori un numero(array) di 4 cifre invece che 5...