| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1423 人关注过本帖
标题:指向函数的指针做函数参数
只看楼主 加入收藏
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
结帖率:25%
收藏
已结贴  问题点数:10 回复次数:6 
指向函数的指针做函数参数
#include<stdio.h>
int main()
{
    int fun(int x,int y,int(*p)(int,int));
    int max(int,int);
    int min(int,int);
    int add(int,int);//函数声明
    int a=34,b=-21,n;
    printf("please choose 1,2 or 3");
    scanf("%d",&n);
    if(n==1)  fun(a,b,max);
    if(n==2)  fun(a,b,min);
    if(n==3)  fun(a,b,add);//函数调用
    return 0;
}
int fun(int x,int y,int (*p)(int ,int))
{
    int result;
    result=(*p)(x,y);
    printf("%d\n",result);
}
int max(int x,int y)
{
    int z;
    if(x>y) z=x;
    else z=y;
    printf("max=");
    return (z);//返回两者中较大者
}
int min(int x,int y)
{
    int z;
    if(x<y) z=x;
    else z=y;
    printf("max=");
    return (z);//返回两者中较小者
}
int add(int x,int y)
{
    int z;
    z=x+y;
    printf("add=");
    return (z);//返回两者之和
}
教科书上的代码,理解性的照着打了一遍,问什么有错?
搜索更多相关主题的帖子: 函数 int fun max printf 
2018-12-05 20:25
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10537
专家分:42927
注 册:2014-5-20
收藏
得分:4 
是不是编译器不同,提供的代码测试结果正常,或试试:
    if(n==1)  fun(a,b,&max);
    if(n==2)  fun(a,b,&min);
    if(n==3)  fun(a,b,&add);//函数调用

[此贴子已经被作者于2018-12-6 05:08编辑过]

2018-12-06 04:54
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:4 
问什么有错?
鬼知道你想问什么
2018-12-06 09:03
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:4 
程序代码:
int fun(int x,int y,int (*p)(int ,int))
{
    int result;
    result=(*p)(x,y);
    printf("%d\n",result);
}

这个函数定义返回值是int类型,你的实现中没有return语句。加入一个return 0;就可以了
当然这个程序在一些编译器中运行时完全没问题的,但有些编译器就会把这个问题当成错误。
2018-12-06 15:00
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
收藏
得分:0 
回复 4楼 wlxy_wang
感谢大佬
2018-12-06 18:54
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
收藏
得分:0 
回复 2楼 吹水佬
谢谢,问题已经解决
2018-12-06 18:54
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
收藏
得分:0 
回复 3楼 rjsp
谢谢,问题已经解决
2018-12-06 18:54
快速回复:指向函数的指针做函数参数
数据加载中...
 
   



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

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