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):
solo che addirittura a volte mi salta fuori un numero(array) di 4 cifre invece che 5...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; } } }