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...