Un point sur lequel il me parait important d'insister c'est au des warning que tu avais dans ton code.
En gros tu faisais ceci :
char name[50];
scanf("%s", &name);
C'est une erreur car scanf attends que tu lui donne une adresse, hors écrire ceci scanf("%s", name); Revient à lui donner une adresse, celle de la première variable variable du tableau.