|
发表于 2021-5-16 01:10:48
|
显示全部楼层
你调用了函数吗 也没用函数指针数组呀
- #define _CRT_SECURE_NO_WARNINGS 1
- #include<stdio.h>
- #include<windows.h>
- int add(int a, int b)
- {
- return a + b;
- }
- int sub(int a, int b)
- {
- return a - b;
- }
- int mul(int a, int b)
- {
- return a * b;
- }
- int divi(int a, int b)
- {
- return a / b;
- }
- void menu()
- {
- printf("---------------------------------\n");
- printf("------1.add         2.sub------\n ");
- printf("------3.mul         4.div------\n ");
- printf("---------------------------------\n");
- printf("请选择:");
- }
- int main()
- {
- int x = 0;
- int y = 0;
- int input = 1;
- int ret = 0;
- char a[5] = { '0', '+', '-', '*', '/' };
- int(*p[5])(int x, int y) = { 0, add, sub, mul, divi };  //定义一个函数指针数组存放函数地址
- while (input)
- {
- menu();
- scanf("%d", &input);
- if (input == 0)break;
- if (input > 0 && input < 5)
- {
- printf("请输入操作数:");
- scanf("%d %d", &x, &y);
- ret = (*p[input])(x, y);
-  
- }
- else{
- printf("输入错误!\n");
- }
- printf("%d %c %d = %d\n", x, a[input], y, ret);
- }
- system("pause");
- return 0;
- }
复制代码 |
|