修改c语言程序?

修改c语言程序?,第1张

#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)}

首先说下存在的问题:

1.define容易造成误会,因为不符合一般的编程习惯,false 0, true 1

2.scanf放在你的那个地方是达不到你想要的结果,只输入了一次。建议改成getchar这种形式,具体如图二脊尘

3.为了达到通用化,建议定义两个你需要处理的字符组合,他们相互配对,这样方便以后添加而不用改下面凳野伏的代码

4.同时为了配合3这个更改添加一个判断输入字符是不是在字符组的函数,方便使用。

详细代码如图,因为没有Stack我没枣携有办法验证,如果有错你看着改改,这种思路是没有错的。

图一

图二

“+”是个字符串,m是字符型变量,颂野不能与字符串进行比较,把野谈喊“+”改为'+',侍雹后面的一样;另外,在 printf("请输入加、减、乘、除或者求余符号\n")语句之前加一个getchar(),以吃掉输入的回车符。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12468718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存