莫比乌斯环 发表于 2018-8-7 09:03:15

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

#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:13:03

可是pro函数本体呢?

莫比乌斯环 发表于 2018-8-7 09:14:33

无符号整形 发表于 2018-8-7 09:13
可是pro函数本体呢?

额,因为刚刚学到这个指向函数的指针。不知道本体怎么写!

无符号整形 发表于 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);
}

莫比乌斯环 发表于 2018-8-7 09:17:13

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

{:5_96:}

莫比乌斯环 发表于 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) ;
}

修改后。帅帅的版主,能不能帮我重构一下。因为学的迷迷糊糊的~

无符号整形 发表于 2018-8-7 09:28:30

莫比乌斯环 发表于 2018-8-7 09:25
#include
int main()
{


你这个写得挺好啊,函数指针就是一个指向函数的指针,只要它指向了一个函数,就可以调用那个指针。

莫比乌斯环 发表于 2018-8-7 09:32:14

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

可是就是编译不过。大佬帮忙看看!

莫比乌斯环 发表于 2018-8-7 09:35:08

莫比乌斯环 发表于 2018-8-7 09:32
可是就是编译不过。大佬帮忙看看!

万分感谢,小白求带路
页: [1]
查看完整版本: 实现一个指向函数的指针,实现这个函数的不同功能。完全不知道错在哪里。