char cont_prog = 'n';
do {
/* main program in here */
printf("Do you want to start again? (y/n): ");
cont_prog = getchar();
} while (cont_prog == 'y' || cont_prog == 'Y');
По сути, вы хотите поместить свою главную прогу в цикл, спрашивая пользователя, хотят ли они продолжить. Вам приходится иметь дело с тем, что пользователь вводит слишком много данных (например, «да»), а ваш буфер переполняется в следующий раз через цикл.