Dopo la scanf va inserito il ciclo

while(getchar()!='\n');

per pulire il buffer di tastiera e il controllo va fatto con un carattere non con il numero 0

while(d!='0');