私はCプログラミングの初心者で、自分のコードでif-else文を使って電卓を作ったところです。そして、switch-statementを使って同じことをしようとしましたが、常にデフォルトを実行しています。私のコードを見て、間違っていることを教えてください。 現在、CodeBlockでコードを書いています。switch文を使用してCで簡単な電卓を作成する
int main()
{
printf("\nWhat operation do you want to do:\n\tA)Addition\n\tB)Subtraction\n\tC)Multiplication\n\tD)Division\n");
float num1;
printf("Please enter the first number: ");
scanf("%f", &num1);
float num2;
printf("Please enter the second number: ");
scanf("%f", &num2);
char myChar;
scanf("%c", &myChar);
switch (myChar)
{
case 'A':
printf("The addition of %.2f and %.2f is %.2f", num1, num2, num1 + num2);
break;
case 'B':
printf("The subtraction of %.2f and %.2f is %.2f", num1, num2, num1 - num2);
break;
case 'C':
printf("The multiplication of %.2f and %.2f is %.2f", num1, num2, num1 * num2);
break;
case 'D':
printf("The quotient of %.2f and %.2f is %.2f", num1, num2, num1/num2);
break;
default :
printf("You enterned incorrect input");
break;
}
return 0;
}
任意の助け
'char myChar; – BLUEPIXY
'scanf("%c "、&myChar)'を実行すると、2番目の数値を読み込んだ後に改行を読み込んでいます。あなたの 'switch()'は大文字小文字を持っていないので、デフォルトを実行します。 – Dmitri
行を読み取る場合は、行または行を読み取るコードを使用し、文字または数値を読み取るコードでは使用しないでください。表示されているようにコードを動作させるには、コードが2つの数字と1文字を読み込むので、 "32 43+"と入力する必要があります。 –