Salve, da poco sto studiando il linguaggio di programmazione C.
Mi sono divertito a scrivere dei programmini e vorrei porvi in osservazioneuno di questi che simula il controllo della vincita al superenalotto.
Ve lo faccio vedere siccome ho un errore, l'errore di Segmentation fault che proprio non riesco a spiegarmi.codice:#include <stdio.h> int main() { /* ComboVincente[6] contiene la combinazione vincente; Jolly e Star sono i rispettivi numeri della combinazione vincente; Giocata[6] e StarGiocata sono i numeri dell'utente; i, g, c, d sonousati come contatori; CombEsatte contiene il numero di combinazioni che l'utente ha indovinato */ int ComboVincente[6], Jolly, Star, Giocata[6], StarGiocata=0, i, d, CombEsatte=0; /* SNstar è un controllo utilizzato per capire se l'utente ha giocato o meno il numero SuperStar; Exit viene utilizzato per capire se l'utente vuole uscire dal programma */ char SNstar, Exit; printf("\nQuesto programma effettua il conteggio delle combinazioni del SuperEnalotto. BUONA FORTUNA!!\n"); printf("Inserimento combinazione vincente:\n"); for (i=0; i<6; i++) /* acquisisco i numeri della giocata vincente */ { printf("%d° numero - ", i+1); scanf("%d", &ComboVincente[i]); } printf("Numero Jolly - "); scanf("%d", &Jolly); printf("Numero SuperStar - "); scanf("%d", &Star); do { printf("\nInserimento giocata effettuata:\n"); for (i=0; i<6; i++) /*Carico il vettore con i numeri giocati*/ { printf("%d° numero - ", i+1); scanf("%d", &Giocata[i]); } printf("Hai un numero SuperStar? S/N - "); scanf("%s", &SNstar); /* controllo se l'utente ha giocato il SuperStar */ if (SNstar == 'S' || SNstar == 's') { printf("Inserisci il tuo numero SuperStar - "); scanf("%d", &StarGiocata); /* acquisisco il numero */ if (Star == StarGiocata) /* controllo se il numero dell'utente è uguale a quello della combinazione vincente */ printf("\nIl Numero SusperStar %d è PRESENTE nella tua giocata!\n\n", Star); else printf("\nIl numero SuperStar %d NON è presente nella sua giocata. n\n", Star); } for (i=0; i<6; i++) /* i = contatore della combinazione vincente */ for (d=0; d<6; d++) /* d = contatore della giocata effettuata */ if (ComboVincente[i] == Giocata[d]) { CombEsatte++; printf("Il numero %d della combinazione vincente è PRESENTE nella giocata effettuata!\n", Giocata[d]); } if (CombEsatte == 5) { for (i=0; i<6; i++) if (Giocata[i] == Jolly) { printf("FANTASTICO!! hai totalizzato un 5+1, il numero Jolly %d è presente nella tua giocata!!\n\n", Jolly); break; } if (i==6) printf("OTTIMO! ha totalizzato un %d!\n\n", CombEsatte); } else { if (CombEsatte < 3) printf("\nHai %d numeri della combinazione vincente.\n", CombEsatte); else printf("\nOTTIMO! hai totalizzato un %d!\n", CombEsatte); } CombEsatte = 0; StarGiocata = 0; printf("\nHai un'altra giocata da controllare? S/N : "); scanf("%s", &Exit); /* controllo se l'utente vuole uscire dal programma */ } while ((Exit == 'S') || (Exit == 's')); printf("\n******** PROGRAMMA TERMINATO ********\n\n"); return 0; }
Vi ringrazio se mi date una soluzione...![]()

Rispondi quotando