Я пытался получить вход для переменной char
внутри рекурсии while в моей программе. В начале оператора while
есть 3 основных входа: char
, char
, float
. Я использовал символы преобразования как %*c%c,%*c%c,%f
для каждого ввода, но похоже, что он не принимает значения ввода правильно. Тогда он отлично работает, когда я меняю порядок входов на float
, char
, char
. Есть ли что-то, что я здесь упускаю?
Я также попытался изменить символ преобразования первого ввода символа на %c
, но затем он перестает работать после первого цикла цикла. Есть ли другой способ ввода символов в начале рекурсии? Я могу ясно понять, что проблема с преобразованием символа.
Я объявил все переменные выше.
Просто я хочу сначала получить этот вход LCH, но затем программа перестает работать.
while(CUN<=3)
{
TOTB1=0;
TOTB2=0;
//Inputs
printf("Enter the Distance : ");
scanf("%f",&DIS);
printf("Are you a Loyalty Costomer(Y/N)? : ");
scanf("%*c%c",&LCH);
printf("Enter the Vehicle type: ");
scanf("%*c%c",&CCH);
//IF
if(CCH=='A')
{
if(DIS>80)
{
TOTB1=(80*13000.00)+((DIS-80)*70.00);
}
else
{
TOTB1=DIS*13000.00;
}
}
else if(CCH=='B')
{
if(DIS>80)
{
TOTB1=(80*15000.00)+((DIS-80)*100.00);
}
else
{
TOTB1=DIS*15000.00;
}
}
else if(CCH=='C')
{
if(DIS>80)
{
TOTB1=(80*7000.00)+((DIS-80)*80.00);
}
else
{
TOTB1=DIS*7000.00;
}
}
else if(CCH=='D')
{
if(DIS>80)
{
TOTB1=(80*8000.00)+((DIS-80)*80.00);
}
else
{
TOTB1=DIS*8000.00;
}
}
printf("Bill Without Discount : %.2f\n",TOTB1);
//Loyalty Discount
if(LCH=='Y')
{
TOTB2=TOTB1-(TOTB1*0.1);
}
else if(LCH=='N')
{
TOTB2=TOTB1-(TOTB1*0.05);
}
//Calculate the Total Loop count Exit when CUN=3
CUN=CUN+1;
printf("Total Bill is %f\n",TOTB2);
//Asking further
printf("Do you want to continue for another vehicle : ");
scanf("%*c%c",&AS);
if(AS=='N')
{
break;
}
}