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.
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;
}
Ve lo faccio vedere siccome ho un errore, l'errore di Segmentation fault che proprio non riesco a spiegarmi.
Vi ringrazio se mi date una soluzione...