【发布时间】:2012-10-08 23:01:12
【问题描述】:
我正在尝试做的这个任务有一些问题。基本上我需要一个菜单,4个选项,其中两个接受用户的输入,作为基数和指数的形式。第三个输出base raise 的结果,然后第四个退出程序。
我在通过 getNum() 获取用户输入时遇到问题;我不太确定如何正确使用它。只是看看一些关于如何让我的代码更好地工作的技巧。
寻求帮助:
- 接受来自两个不同函数的用户输入并将其用于 输出答案
- 解决选择菜单选项时的无限循环问题
-
在每个功能完成后将程序循环回主菜单,并且仅 选择菜单选项 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; }
【问题讨论】:
-
getNum()到底是什么?你有实现吗? -
你一直提到的这个“getNum”是什么,为什么你期望它返回整数和字符(
'\n')? -
@rmtheis 不,该标签已弃用。
-
您应该将编译器中的警告级别设置为最大。例如,这会告诉您
main()被声明为int但不返回值。