| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:[求助]怎么回事啊???????/
只看楼主 加入收藏
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
结帖率:100%
收藏
 问题点数:0 回复次数:17 
[求助]怎么回事啊???????/

这个程序为什么输入两个数字后得不到最大值和两之和....例如输入 9,7 结果就是max=12803,min=9,sum=12812

为什么啊?想不明白........



int process(int (*p)(int,int),int x,int y)
{return (*p)(x,y);
}

int max(int x,int y)
{return x>y?x:y;
}

int min(int x,int y)
{return x<y?x:y;
}

int sum(int x,int y)
{return x+y;
}

main()
{int a,b;
int max(int,int);
int min(int,int);
int sum(int,int);
int process(int (*p)(),int,int);
scanf("%d%d",&a,&b);
printf("max=%d,min=%d,sum=%d\n",process(max,a,b),process(min,a,b),process(sum,a,b));
getch();
}

搜索更多相关主题的帖子: process return 最大值 
2006-11-10 23:35
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
为什么没人给解答啊..........

这个社会太复杂。。。
2006-11-11 12:48
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 

编译都没通过。。。

不明白搞得有点复杂。。。


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-11 13:11
lwn
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-22
收藏
得分:0 
能啊!我试了!

学不好C语言,就娶不上媳妇了!
2006-11-11 13:32
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
It is not necessary to use the process funtion. Only the max, min and sum funtion can slove the problem.

printf("max=%d,min=%d,sum=%d\n",process(max,a,b),process(min,a,b),process(sum,a,b));
==============>
printf("max=%d,min=%d,sum=%d\n",max(a,b), min(a,b), sum(a,b));

Another point is that there is a serious in your process funtion.The return value is exactly wrong.

我的原则很简单:不做不喜欢的事!
2006-11-11 13:37
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
不愧是外语外贸的。。。全英文。。。偶的E文不行呀。
没看懂原因。

只知道的确没必要这么麻烦的!

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-11 13:40
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
Sorry, the process funtion is return a funtion pointer .I hadn't found that the p perameter is also a funtion pointe.

我的原则很简单:不做不喜欢的事!
2006-11-11 13:45
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
呵呵,还没有指针呢!

该学习了。。。
2006-11-11 13:46
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
以下是引用lj_860603在2006-11-11 13:37:07的发言:
It is not necessary to use the process funtion. Only the max, min and sum funtion can slove the problem.

printf("max=%d,min=%d,sum=%d\n",process(max,a,b),process(min,a,b),process(sum,a,b));
==============>
printf("max=%d,min=%d,sum=%d\n",max(a,b), min(a,b), sum(a,b));

Another point is that there is a serious in your process funtion.The return value is exactly wrong.

我知道没必要用process那个函数.....我在这个题目中要求实验的是调用一个函数实现不同的功能.....对于此题当然可以不必这么麻烦....直接引用那三个函数就可以了....但是我要做的就是实验...有时候为了结构化设计....这样设个万用函数是有好处的....

还有就是我就弄不明白为什么RETURN返回的值不正确呢? 谁能实质性地帮忙解决下这个问题.....谢谢


这个社会太复杂。。。
2006-11-11 13:48
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
你用什么编译器?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-11-11 13:56
快速回复:[求助]怎么回事啊???????/
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017457 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved