549444387@qq.co 发表于 2018-1-16 10:46:25

设一个函数process,调用它的时候,每次实现不同的功能

#include <stdio.h>

void main()
{
        int max(int , int);
        int min(int, int);
        int add(int, int);

        void process(int x, int y, int(*fun)(int, int));

        int a, b;

        printf("Enter a and b:");
        scanf("%d %d", &a, &b);

        printf("max = ");
        process(a, b, max);

        printf("min = ");
        process(a, b, min);

        printf("add = ");
        process(a, b, add);


}

int max(int i, int j)
{
        int k;
        k = (i>j)?i:j;
        return k;
}
int min(int i, int j)
{
        int k;
        k = (i>j)?j:i;
        return k;
}
int add(int i, int j)
{
        int k;
        k = i + j;
        return k;
}
void process(int x, int y, int(*fun)(int, int))
{
        printf("%d\n", *fun);
}


程序如上,刚开始学,所以不知道哪里出错了,运行结果是不正确的,求大神们指点。

BngThea 发表于 2018-1-16 10:53:33

process的实现,不能这样写,应该这样
printf("%d\n", fun(x,y));

549444387@qq.co 发表于 2018-1-16 10:57:48

BngThea 发表于 2018-1-16 10:53
process的实现,不能这样写,应该这样

好的 谢谢您的答复!

俯瞰星空 发表于 2021-7-27 10:37:00

BngThea 发表于 2018-1-16 10:53
process的实现,不能这样写,应该这样

能解释下为什么要用fun(x,y)而不能用*fun吗

页: [1]
查看完整版本: 设一个函数process,调用它的时候,每次实现不同的功能