Я удивлен, что когда я набираю, например, букву «x», строка «Повторить последний ввод Y или N n» отображается дважды. Он работает, когда пользователь делает то, что ему сказано, но если он этого не делает, поведение функции отличается от ожидаемого. Я бы напечатал строку только один раз, как в первой итерации цикла.
char yesOrNo;
int i=1;
while(i==1){
printf("Repeat last input Y or N n");
scanf("%c",&yesOrNo);
switch( yesOrNo){
case 'y':
case 'Y':
return 'Y';
case 'N':
case 'n':
return 'N';
}
}