0

我正在尝试做的这个任务只是有一些问题。基本上我需要一个菜单​​,4个选项,其中两个接受用户的输入,作为基数和指数的形式。第三个输出base raise 的答案,然后第四个退出程序。

我无法通过 getNum() 获取用户输入;我不太确定如何正确使用它。只是看一些关于如何让我的代码更好地工作的技巧。

寻求帮助:

  1. 接受来自两个不同功能的用户输入并使用它来输出答案
  2. 解决选择菜单选项时的无限循环问题
  3. 每个功能完成后循环程序回到主菜单,只有在选择菜单选项 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;
    }
    
4

2 回答 2

0

请在 main() 之前声明 getnum() 函数,如下所示;

/* declare getnum() prior to its first use */
float getnum(void)
{
  float x;

  printf("Enter a number: ");
  scanf("%f", &x);
  return x;
}
于 2013-08-04T11:38:13.110 回答
0

我无法通过 getNum() 获取用户输入;我不太确定如何正确使用它。

您还没有告诉我们有关此功能的任何信息;它不是 C 标准的一部分。

只是看一些关于如何让我的代码更好地工作的技巧。寻求帮助:

我认为这还为时过早。把更多的精力放在解决你的问题上,如果你有具体的问题再回来。更像这个:

解决选择菜单选项时的无限循环问题

看看你的程序在第二次循环中对 option 做了什么。

于 2012-10-08T23:15:53.810 回答