0

私は成功した switch ステートメントを使用して簡単な電卓プログラムを作成しました。しかし、作成しようとした電卓関数をループする下部の do while ループの作成に問題があります。これは、do while ループを使用して電卓プログラムを繰り返したいかどうかをユーザーに尋ねることが主な目標です。どんな助けでも大歓迎です。

#include <stdio.h>

char math;
float number1;
float number2;
void calculator();
int selection = 0;

int main()
{
    void calculator(){
        printf(" enter the math operation: ");
        scanf("%c", &math);

        printf("Enter two numbers: ");
        scanf("%f%f", &number1, &number2);

        switch(math)
        {
        case '+':
            printf("number1+number2=%.2f",number1+number2);
        break;

        case '/':
            printf("number1/number2=%.2f",number1/number2);
        break;

        case '-':
            printf("number1-number2=%.2f",number1-number2);
        break;

        case '*':
            printf("number1*number2=%.2f",number1*number2);
        break;

        default:
            printf ("Wrong character entered.");
        }
    }

プログラムを繰り返すかどうかをユーザーに尋ねる do while 関数の開始。

    do{
        printf{"\n\n - Do you want to repeat the program?"};
        printf("\n1  - Yes");
        printf("\n2  - No");
        scanf("%i", &selection );
    }
    while (selection != 2);
    calculator();
    return 0;
}
4

5 に答える 5

1

主な質問に答えるために、ループ内で常に最初に電卓を実行してから、再度実行するように要求します。

void calculator() {
  // calc stuff here
}

int main() {
  do {
    calculator();
    printf("\n\n - Do you want to repeat the program?");
    printf("\n1  - Yes");
    printf("\n2  - No");
    scanf("%i", &selection );
  } while (selection != 2);
}
于 2013-10-15T21:56:20.750 に答える
0

計算機の呼び出しはwhile.に配置されますが、do.stmtはwhile.の前に実行されるため、do.に配置する必要があります。そのため、doループ内に計算機()関数の呼び出しを配置するとよいでしょう

于 2013-10-18T06:07:57.743 に答える
0

電卓への呼び出しは間違った場所にあります。必要です。

do {
   calculator();
   ...
} while(sel != 2);
于 2013-10-15T21:55:58.367 に答える