0

get Choice 関数を使用して、ユーザーがメニューから文字を選択できるようにしたいのですが、この値を使用して float 関数で切り替えたいと考えています... switch を int 型としてのみ使用できることはわかっていますが、私が得る値はfloatになりますか?

float calc(float 番号 1, float 番号 2)

{ int 回答 = get_choice();

switch (answer)
    {
        case 'a':
            answer = number1 + number2;
            break;
        case 's':
            answer = number1 - number2;
            break;
        case 'm':
            answer = number1 * number2;
            break;
        case 'd':
            answer = number1 / number2;
            break;
    }
return answer; }

char get_choice(無効)

{ int の選択;

printf("Enter the operation of your choice:\n");
printf("a. add        s. subtract\n");
printf("m. multiply   d. divide\n");
printf("q. quit\n");

while ((choice = getchar()) == 1 && choice != 'q')
{

    if (choice != 'a' || choice != 's' || choice != 'm' || choice != 'd')
    {
        printf("Enter the operation of your choice:\n");
        printf("a. add        s. subtract\n");
        printf("m. multiply   d. divide\n");
        printf("q. quit\n");
        continue;
    }


}
return choice; }
4

2 に答える 2

1
float calc(float number1, float number2)

{ int choice = get_choice();
  float answer = 0.0;

  switch (choice)

変数を再利用する必要はありません。char変数を直接切り替えることもできます。

于 2013-02-03T15:45:16.123 に答える
0

ゼロ以外の値は真であるため、コーディングする必要があります

while ((choice = getchar()) != EOF && choice != 'q') 
于 2013-02-03T15:45:48.990 に答える