scanf("\n%d", &choice);

Newlines etc., don't belong in scanf() format code area. BTW if you add getchar() after that line of code, then if some dumb bunny enters a letter like 'a', the loop will...