首先说下存在的问题:
1.define容易造成误会,因为不符合一般的编程习惯,false 0, true 1
2.scanf放在你的那个地方是达不到你想要的结果,只输入了一次。建议改成getchar这种形式,具体如图二
3.为了达到通用化,建议定义两个你需要处理的字符组合,他们相互配对,这样方便以后添加而不用改下面的代码
4.同时为了配合3这个更改添加一个判断输入字符是不是在字符组的函数,方便使用。
详细代码如图,因为没有Stack我没有办法验证,如果有错你看着改改,这种思路是没有错的。
图一
图二
#include <stdio.h>int (*function[4])(int, int)
int execute(int x, int y,int (*fun)(int, int)) { return (*fun)(x,y)}
int main()
{
int fun1(int, int)
int fun2(int, int)
int fun3(int, int)
int fun4(int, int)
int a=10,b=5,i
function[0]=fun1
function[1]=fun2
function[2]=fun3
function[3]=fun4
for(i=0i<4i++)
printf("fun no.%d->%d\n",i+1,execute(a,b,function[i]))
return 0
}
int fun1(int x, int y) { return(x+y)}
int fun2(int x, int y) { return(x-y)}
int fun3(int x, int y) { return(x*y)}
int fun4(int x, int y) { return(x/y)}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)