| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 120 人关注过本帖
标题:用函数指针变量调用函数
只看楼主 加入收藏
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:34
专家分:27
注 册:2018-10-18
结帖率:37.5%
  问题点数: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 调用函数
2018-12-05 20:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:169
帖 子:6389
专家分:28017
注 册: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
等 级:论坛游民
帖 子:34
专家分:27
注 册:2018-10-18
  得分:0 
回复 2楼 吹水佬
你的这个依旧不能选择1 or 2
2018-12-06 18:44
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:34
专家分:27
注 册:2018-10-18
  得分:0 
回复 3楼 龙岩花界
感谢楼主,我已经解决了。原来是存储a,b的时候我用的逗号隔开,检测的时候却打成了空格
2018-12-06 20:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:169
帖 子:6389
专家分:28017
注 册:2014-5-20
  得分:0 
回复 4楼 龙岩花界
与题意不符,这与函数指针部份内容无关,标题本身是否就是个问题。
2018-12-06 20:10







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

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