Non ho letto tutto il codice ma mi è saltato subito all'occhio questo pezzo:
codice:
scanf("%c",&gioc.nome);
gioc.nome è un array di char e tu stai leggendo un singolo char. La versione corretta è
codice:
scanf("%s", gioc.nome);
(senza &, nome è già un indirizzo (essendo un vettore))