Я пишу код программы, которая считывает ввод от пользователя и в зависимости от этого вычисляет (площадь, окружность, объем или выход)
#include<stdio.h>
int main(void)
{
double radius=0.0;
double area=0.0;
double volume=0.0;
double height=0.0;
double circumference=0.0;
const double pi=13.459820934;
char choice;
do
{
printf("Choose what you want to do : \n"
"Calculate Area A\n"
"Calculate Circumference C\n"
"Calculate Volume V\n"
"Quit Q\n");
/*scanf("%c",&choice);*/
choice=getchar();
printf("please enter radius : ");
scanf("%lf",&radius);
if(choice=='V')
{
printf("please enter height : ");
scanf("%lf",&height);
}
area = pi * radius * radius;
volume = height * area;
circumference = 2 * pi * radius;
switch (choice)
{
case 'A':
printf("Area = %lf\n\n",area);
break;
case 'V':
printf("Volume = %lf\n\n",volume);
break;
case 'C':
printf("Circumference = %lf\n\n",circumference);
break;
default:
printf("Not a good answer !!\n\n");
}
}while(choice!='Q');
return 0;
}
когда я запускал программу, она работала хорошо для первого цикла do, но после повторного выбора вариантов, поскольку она запускает цикл во второй раз, она не ждала, пока я введу свой выбор, она прямо напечатала «пожалуйста, введите радиус»
когда я отлаживал программу, я обнаружил, что при запуске цикла во второй раз было выбрано «\ n», как я могу удалить этот «\ n» каждый цикл? Я знал, что это '\n' возникло в результате чтения выбора пользователя, за которым последовал первый запуск цикла, но я не знаю, почему выбор удален из выбора, а не был?
Я пытался инициализировать выбор, прежде чем отображать выбор пользователю, но возникла та же проблема.
любая помощь, пожалуйста? заранее спасибо