Il problema sta nel %d come già detto. Giusto per completare in ogni caso: fflush(stdin) non è portabile e potrebbe non avere alcun effetto...