Devo ammettere che qualche volta nei cicli la scanf mi ha dato rogne a causa di qualche \n volante che rimane nell stdin.Prova ad inserire fflush(stdin) prima di fare ogni scanf,non ti garantisco che funzioni però.