鱼C论坛

 找回密码
 立即注册
查看: 1533|回复: 8

[已解决]实现一个指向函数的指针,实现这个函数的不同功能。完全不知道错在哪里。

[复制链接]
发表于 2018-8-7 09:03:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main()
{
    int a,b,z ;
       
        int max(int ,int );

        int min(int ,int );

        int add(int ,int );

        int pro(int x,int y,int (*p)(int z) );

    scanf("%d %d",&a,&b);

        printf("max =  ");

        pro(a,b,max);

        printf("min =  ");

        pro(a,b,min) ;

        pro("add =  ") ;

        pro(a,b,add) ;
}

int max(int x,int y)

{
        int z ;

        if( x > y )
        {
                z = x ;

                printf("%d",z);

        }
        else
        {
                z = y ;

                printf("%d",z);
        }

        return z;
}
int min(int x,int y)
{
        int z ;
        if ( x < y)
        {
                z = x ;

                printf("%d",z);
        }
        else
        {
                z = y ;
                printf("%d",z);
        }

int add(int x,int y)
{
        int z ;

        z = a + b ;

        printf("%d", z ) ;

}

这是小甲鱼 B站
c语言视频07指针那一章节结尾的题目,我可爱的鱼鱼竟然在08章节没有讲直接略过了。我自己做也不对!
最佳答案
2018-8-7 09:16:38
莫比乌斯环 发表于 2018-8-7 09:14
额,因为刚刚学到这个指向函数的指针。不知道本体怎么写!


就是调用第三个参数就行了,另外你这个函数指针貌似有点问题啊(容不下2个参数??)
int pro(int x,int y,int (*p)(int a,int b) )
{
        reutrn p(x,y);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-7 09:13:03 | 显示全部楼层
可是pro函数本体呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-7 09:14:33 | 显示全部楼层
无符号整形 发表于 2018-8-7 09:13
可是pro函数本体呢?

额,因为刚刚学到这个指向函数的指针。不知道本体怎么写!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-7 09:16:38 | 显示全部楼层    本楼为最佳答案   
莫比乌斯环 发表于 2018-8-7 09:14
额,因为刚刚学到这个指向函数的指针。不知道本体怎么写!


就是调用第三个参数就行了,另外你这个函数指针貌似有点问题啊(容不下2个参数??)
int pro(int x,int y,int (*p)(int a,int b) )
{
        reutrn p(x,y);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-7 09:17:13 | 显示全部楼层
莫比乌斯环 发表于 2018-8-7 09:14
额,因为刚刚学到这个指向函数的指针。不知道本体怎么写!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-7 09:25:04 | 显示全部楼层
无符号整形 发表于 2018-8-7 09:16
就是调用第三个参数就行了,另外你这个函数指针貌似有点问题啊(容不下2个参数??)

#include<stdio.h>
int main()
{
    int a,b;
       
        int max(int ,int );

        int min(int ,int );

        int add(int ,int );

        int pro(int x,int y,int (*p)(int a,int b) );

    scanf("%d %d",&a,&b);

        printf("max =  ");

        pro(a,b,max);

        printf("min =  ");

        pro(a,b,min) ;

        printf("add =  ") ;

        pro(a,b,add) ;
}

int max(int x,int y)

{
        int z ;

        if( x > y )
        {
                z = x ;

                printf("%d",z);

        }
        else
        {
                z = y ;

                printf("%d",z);
        }

        return z ;
}
int min(int x,int y)
{
        int z ;
        if ( x < y)
        {
                z = x ;

                printf("%d",z);
        }
        else
        {
                z = y ;
                printf("%d",z);
        }
        return 0 ;

int add(int x,int y)
{
        int z ;

        z = a + b ;

        printf("%d",z) ;

        return 0

}
int pro(int x,int y,int (*p)(int a,int b) )
{
        return p(x,y) ;
}

修改后。帅帅的版主,能不能帮我重构一下。因为学的迷迷糊糊的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-7 09:28:30 | 显示全部楼层

你这个写得挺好啊,函数指针就是一个指向函数的指针,只要它指向了一个函数,就可以调用那个指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-7 09:32:14 | 显示全部楼层
无符号整形 发表于 2018-8-7 09:28
你这个写得挺好啊,函数指针就是一个指向函数的指针,只要它指向了一个函数,就可以调用那个指针。

可是就是编译不过。大佬帮忙看看!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-7 09:35:08 | 显示全部楼层
莫比乌斯环 发表于 2018-8-7 09:32
可是就是编译不过。大佬帮忙看看!

万分感谢,小白求带路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-2 08:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表