non ci avevo fatto casoOriginariamente inviato da MItaly
Ma tra l'altro, perché mi citi un messaggio di un mese e 10 giorni fa?![]()
![]()
![]()
non ci avevo fatto casoOriginariamente inviato da MItaly
Ma tra l'altro, perché mi citi un messaggio di un mese e 10 giorni fa?![]()
![]()
![]()
io potrei fare:Cicla su tutto l'array di estrazioni verificando quando incontri il numero.
for(estr=0;estr<10;estr++)
for(ruota=0;ruota<11;ruota++)
for(i=0;i<5;i++)
if (x==num[estr][ruota][i])
A questo punto non saprei come andare avanti...![]()
Se devi semplicemente dire dove si trova il numero in questione
.codice:printf("Il numero %d e' stato estratto nella %s estrazione sulla ruota di %s",x,ordine[estr],citta[ruota]);
Amaro C++, il gusto pieno dell'undefined behavior.
però probabilmente il numero esce su più estrazioni e più ruote.Originariamente inviato da MItaly
Se devi semplicemente dire dove si trova il numero in questione
.codice:printf("Il numero %d e' stato estratto nella %s estrazione sulla ruota di %s",x,ordine[estr],citta[ruota]);
Scopo finale:
o una cosa del generecodice:Il numero è uscito nella prima estrazione sulle ruote di BARI VENEZIA nella seconda estrazione sulla ruota di ROMA nella terza estrazione .... ...![]()
E quindi?Originariamente inviato da cristianc
però probabilmente il numero esce su più estrazioni e più ruote.
Scopo finale:
o una cosa del generecodice:Il numero è uscito nella prima estrazione sulle ruote di BARI VENEZIA nella seconda estrazione sulla ruota di ROMA nella terza estrazione .... ...![]()
Le for con la if esaminano "tutto" l'array, quindi otterrai "tutte" le occorrenze ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
il frammento che ho postato confronta solo gli elementi dell'array con il numeroLe for con la if esaminano "tutto" l'array, quindi otterrai "tutte" le occorrenze ...![]()
È ben quello che devi fare... se vuoi ottenere il preciso risultato grafico che dici devi solo raffinarlo un po':
codice:printf("%s", "Il numero è uscito "); for(estr=0;estr<10;estr++) { int nome_estrazione_stampato=0; for(ruota=0;ruota<11;ruota++) { for(i=0;i<5;i++) { if (x==num[estr][ruota][i]) { if(!nome_estrazione_stampato) { printf("nella %s estrazione sulle ruote di\n", ordine[estr]); nome_estrazione_stampato=1; } printf("%s\n", citta[ruota]); } } } }
Amaro C++, il gusto pieno dell'undefined behavior.
ti ringrazio molto per quello che hai scritto![]()
Lo provo e faccio sapere![]()
Prego, figurati; non garantisco comunque che funzioni, non l'ho provato.
Amaro C++, il gusto pieno dell'undefined behavior.
Ciao,
allora ho terminato di scrivere il programma. Purtroppo la compilazione fallisce:
Qual'è la ragione di questo problema?codice:lotto.c: In function ‘main’: lotto.c:85: error: expected ‘;’ before ‘)’ token![]()
Questo è il codice aggiornato:
codice:#include <stdio.h> #include <stdlib.h> #include <time.h> main() { int estr,ruota,x,i; int num[10][11][5]; char *ordine[] = {"prima","seconda","terza","quarta","quinta","sesta","settima","ottava","nona","decima"}; char *citta[] = {"BARI","CAGLIARI","FIRENZE","GENOVA","MILANO","NAPOLI","PALERMO","ROMA","TORINO","VENEZIA","NAZIONALE"}; srand(time(NULL)); printf("\n\t\t\t* ESTRAZIONI DEL LOTTO *\n\n"); for(estr=0;estr<10;estr++) { if (estr != 0) { printf("Attendere l'estrazione successiva...\n\n"); sleep(2); } printf("%s estrazione:\n\n",ordine[estr]); for(ruota=0;ruota<11;ruota++) { sleep(1); printf("%-25s",citta[ruota]); for(i=0; i<5; i++) { int j; num[estr][ruota][i] = rand() % 90 + 1; for(j=0; j<i; j++) if (num[estr][ruota][i] == num[estr][ruota][j]) { j=i; i--; } } for(i=0;i<5;i++) { fflush(stdout); sleep(1); printf("%6d ",num[estr][ruota][i]); } printf("\n\n"); } } printf("// Verifica se un numero passato in ingresso dall'utente\n// è uscito specificando su quali ruote e in quali estrazioni\n\n"); printf("numero da cercare: "); scanf("%d",&x); char result[10][11][10],ord_fin[10][8]; int vuoto[10],cont[10]; int empty = 1; int j,k; int estr_old = -1; for(i=0;i<10;i++) { vuoto[i] = 1; cont[i] = 0; } j = 0; k = 0; for(estr=0;estr<10;estr++) { for(ruota=0;ruota<11;ruota++) { for(i=0;i<5;i++) { if (x==num[estr][ruota][i]) { int i = 0; if (estr > estr_old) { if (j) { j++; k = 0; do { ord_fin[j][i] = ordine[estr][i]; i++; } while(ordine[estr][i] != '\0'); } else do { ord_fin[j][i] = ordine[estr][i]; i++; } while(ordine[estr][i] != '\0'); } i = 0; do { result[j][k][i] = citta[ruota][i]; i++; } while(citta[ruota][i] != '\0'); vuoto[estr] = 0; cont[j]++; k++; estr_old = estr; } } } } for(i=0;i<10,i++) { if(vuoto[i] == 0) { empty = 0; i = 9; } i++; } if (vuoto == 0) printf("Il numero %d non è uscito in alcuna estrazione\n",x); else { printf("Il numero %d è uscito:\n",x); for(j=0;j<10;j++) if (cont[j]) { printf("nella %s estrazione sull%c ruot%c di ",ord_fin[j],(cont[j]==1) ? 'a' : 'e',(cont[j]==1) ? 'a' : 'e'); for(k=0;k<cont[j];k++) printf("%s ",result[j][k]); printf("\n"); } } printf("\n"); }