私がやろうとしているこの課題には、いくつかのねじれがあります。基本的に、メニューと 4 つのオプションが必要です。そのうちの 2 つは、基数と指数の形式でユーザーからの入力を受け入れます。3 番目はベース レイズの答えをべき乗で出力し、4 番目はプログラムを終了します。
getNum(); を介してユーザー入力を取得するのに問題があります。正しい使い方がよくわかりません。私のコードを少しうまく機能させる方法に関するいくつかのヒントを見ているだけです。
ヘルプを探しています:
- 2 つの異なる関数からユーザー入力を受け取り、それを使用して回答を出力する
- メニューオプション選択時の無限ループ問題の解決
各機能が完了した後にプログラムをメイン メニューにループバックし、メニュー オプション 4 が選択された場合にのみプログラムを終了します。
int main(void) { int option = 0; do { loadMenu(); while (option<1 || option>4) { printf("\nChoose an option between 1 and 4:"); option = getNum(); while (getNum() != '\n'); } switch (option) { case 1: baseChange(); //Gets base number break; case 2: powerChange(); //Gets exponent break; case 3: calcMath(); //Calculates the answer break; default: break; } } while (option != 4); printf("Goodbye!\n"); } void loadMenu() //Menu choices { printf("Power Menu:\n" ); printf(" 1. Change base\n"); printf(" 2. Change exponent\n"); printf(" 3. Calculate\n"); printf(" 4. Exit\n"); printf("Option?\n"); } int baseChange(int base) { printf("What is your base?: "); base = getNum(); while (getNum() != '\n'); return base; } int powerChange(int power) { printf("What is the power?: "); power = getNum(); while (getNum() != '\n'); return power; } int calcMath(int base, int power) { int index = 0; long answer = 1.00; for(index = 1; index <= power; index++) answer = answer * base; { printf("%d raised to the power of %d is %ld.\n\n", base, power, answer); } return answer; }