标题:用函数指针变量调用函数
只看楼主
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
结帖率:25%
 问题点数:0 回复次数:4 
用函数指针变量调用函数
#include<stdio.h>
int main()
{   int max(int x,int y);
    int min(int x,int y);//函数声明
    int(*p)(int,int);
    int a,b,c,n;
    printf("please enter a and b:");
    scanf("%d,%d",&a,&b);
    printf("choose 1 or 2:");
    scanf("%d",&n);
    if(n==1) p=max;
    else if(n==2) p=min;
    c=(*p)(a,b);
    printf("a=%d,b=%d\n",a,b);
    if(n==1) printf("max=%d\n",c);
    else printf("min=%d\n",c);
    return 0;
}
int max(int x,int y)//调用
{
    int z;
    if(x>y) z=x;
    else z=y;
    return (z);
}
int min(int x,int y)//调用
{
    int z;
    if(x<y) z=x;   
    else z=y;
    return (z);
}
照着教科书理解性的打了一遍,没错。但是运行的时候无法选择1 2 调用函数
搜索更多相关主题的帖子: 函数 调用 int max printf 
2018-12-05 20:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
没抄错,可能是编译器不同,试试:
#include<stdio.h>
int main()
{
    int max(int x,int y);
    int min(int x,int y);//函数声明
    int (*p)(int,int);
    int a,b,c,n;
    printf("please enter a and b:");
    scanf("%d,%d",&a,&b);
    printf("choose 1 or 2:");
    scanf("%d",&n);
    if (n<1 || n>2)
        return 0;
    if (n==1)
        p = &max;
    else if(n==2)
        p = &min;
    c = p(a,b);
    printf("a=%d,b=%d\n",a,b);
    if (n==1)
        printf("max=%d\n",c);
    else
        printf("min=%d\n",c);
    return 0;
}
int max(int x,int y)//调用
{
    int z;
    if(x>y) z=x;
    else z=y;
    return (z);
}
int min(int x,int y)//调用
{
    int z;
    if(x<y) z=x;
    else z=y;
    return (z);
}

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

2018-12-06 04:46
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
得分:0 
回复 2楼 吹水佬
你的这个依旧不能选择1 or 2
2018-12-06 18:44
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
得分:0 
回复 3楼 龙岩花界
感谢楼主,我已经解决了。原来是存储a,b的时候我用的逗号隔开,检测的时候却打成了空格
2018-12-06 20:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 4楼 龙岩花界
与题意不符,这与函数指针部份内容无关,标题本身是否就是个问题。
2018-12-06 20:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491853-1-1.html




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

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