è una questione di approcci . . io preferisco sempre usare algoritmi per quanto possibile scalabili, di modo che se devo modificare il programma non ho problemi . . il select forse è un pò esagerato (dipende quanto il compilatore può ottimizzare l'azzeramento), però genera del codice più compatto e sicuramente più scalabile . . per dire si poteva anche tenere un vettore dei numeri usciti e fare il controllo su di quello, in questo caso sarebbe più efficiente . . . questione di gusti

. .
per il goto: io preferisco evitarlo se posso . . gli errori recuperabili preferisco gestirli con un while, quelli irrecuperabili con un error() o un return ERROR_CODE . . . anche qui sono gusti

. .
esempio più efficiente
- Codice: Seleziona tutto
int numeri_gia_usciti[6],i;
for (n = 0; n < 6; ++n){
loop:
v[n] = rand() % 90 + 1;
for(i=0;i<n;i++)
if(numenumeri_gia_usciti[i]==v[n])
goto loop;
numeri_gia_usciti[n]=v[n];
}
e qua invece un goto lo uso perchè in c manca un costrutto break N o continue N per spezzare più livelli di cicli (odio il c che mi costringe a usare i goto

, invero volendo si potrebbe usare una flag, ma odio le flag più ancora dei goto

. . )