#include <stdio.h>
int main()
{
int c1;
char op;
printf("\n(Int or Float) \n\t[1.for int 2.for float] \nEnter Choise : ");
scanf("%d",&c1);
if (c1==1)
{
printf("\n(select opearion) \n\t[+, -, *] \nEnter Choise : ");
scanf("%c", &op);
int a,b,r;
printf("\n Enter Two no. : ");
scanf("%d%d ", &a,&b);
switch (op)
{
case '+': r=a+b;
break;
case '-': r=a-b;
break;
case '*': r=a*b;
break;
default:
printf("Wrong Operator Entered");
}
printf("\n\n Result = %d \n\n",r);
}
else if(c1==2)
{
printf("\n(select opearion) \n\t[+, -, *] \nEnter Choise : ");
scanf("%c", &op);
float a,b,r;
printf("\n Enter two numbers : ");
scanf("%f%f", &a,&b);
switch (op)
{
case '+': r=a+b;
break;
case '-': r=a-b;
break;
case '*': r=a*b;
break;
default:
printf("Wrong Operator Entered");
}
printf("\n\n Result = %f\n\n",r);
}
else
{
printf("\n\n Wrong choise entered \n\n");
}
}
このプログラムを実行すると、プログラムはopの値を取得するのを待たずに、直接2つの入力を要求します。なぜこれが起こるのですか?
プログラムが目的の操作のユーザーから値を取得する部分をスキップし、操作を実行する2つの番号を要求する次のステップに進むのはなぜですか。プログラムが参加しているその値をスキップするのはなぜですか。