| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1095 人关注过本帖
标题:我照着答案打的,哪错了
只看楼主 加入收藏
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
结帖率:100%
收藏
 问题点数:0 回复次数:8 
我照着答案打的,哪错了
程序代码:
int max(int x, int y)
{
    return(x > y ? x : y);
}

int min(int x, int y)
{
    return(x > y ? y : x);
}

#include<stdio.h>
int main()
{
    int max(int x, int y);
    int min(int x, int y);
    int(*p)(int x, int y);
    int a = 1, b = 2, n, c;
    int flag = 0;
    while (flag == 0)
    {
        printf("choose 1 or 2 in your select:\n");
        scanf_s("%d", &n);
        if (n == 1 || n == 2) flag = 1;
        else
        {
            printf("There is an error in your enter,please try again!\n");
            flag = 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 if (n == 2) printf("min=%d\n", c);
    return 0;
}


[此贴子已经被作者于2017-1-14 09:39编辑过]

2017-01-14 09:11
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
好了
程序代码:
int max(int x, int y)
{
    return(x > y ? x : y);
}

int min(int x, int y)
{
    return(x > y ? y : x);
}

#include<stdio.h>
int main()
{
    int max(int x, int y);
    int min(int x, int y);
    int(*p)(int x, int y) = NULL;
    int a = 1, b = 2, n, c;
    int flag = 0;
    while (flag == 0)
    {
        printf("choose 1 or 2 in your select:\n");
        scanf_s("%d", &n);
        if (n == 1 || n == 2) flag = 1;
        else
        {
            printf("There is an error in your enter,please try again!\n");
            flag = 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 if (n == 2) printf("min=%d\n", c);
    return 0;
}


[此贴子已经被作者于2017-1-14 09:38编辑过]

2017-01-14 09:34
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
怎么啦~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-14 13:35
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 3楼 九转星河
VS2017rc控制内存溢出
2017-01-14 15:11
ICU
Rank: 4
等 级:业余侠客
威 望:2
帖 子:92
专家分:268
注 册:2017-1-14
收藏
得分:0 
回复2楼见注释

int max(int x, int y)
{
    return(x > y ? x : y);
}

int min(int x, int y)
{
    return(x > y ? y : x);
}

#include<stdio.h>
int main()
{
    int max(int x, int y);
    int min(int x, int y);
    int(*p)(int x, int y) = NULL;//首先将没有确定指向的函数指针指向一个确定的、安全的“空”位置,否则p将指向一个无法预料的位置
    int a = 1, b = 2, n, c;
    int flag = 0;
    while (flag == 0)
    {
        printf("choose 1 or 2 in your select:\n");
        scanf_s("%d", &n);
        if (n == 1 || n == 2) flag = 1;
        else
        {
            printf("There is an error in your enter,please try again!\n");
            flag = 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 if (n == 2) printf("min=%d\n", c);
    return 0;
}


2017-01-14 22:26
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:0 
程序代码:
int max(int x, int y)
{
    return(x > y ? x : y);
}

int min(int x, int y)
{
    return(x > y ? y : x);
}

#include<stdio.h>
int main()
{
    int max(int x, int y);    //这里声明局部函数,max。
    int min(int x, int y);    //以上类同。
    int(*p)(int x, int y) = NULL;    //声明函数的指针,也按要求先赋NULL。
    int a = 1, b = 2, n, c;    //声明变量。
    int flag = 0;    
    while (flag == 0)    
    {
        printf("choose 1 or 2 in your select:\n");
        scanf_s("%d", &n);
        if (n == 1 || n == 2) flag = 1;
        else
        {
            printf("There is an error in your enter,please try again!\n");
            flag = 0;
        }
    }            //flag控制输入的n只能是 1或 2
    if (n == 1) p = max;    //是 1 则把max函数的地址复制给p函数指针
    else if (n == 2) p = min;    //是 2 则把min赋给p,上同
    c = (*p)(a, b);    //然后就开始使用p函数指针,使用方法与原函数一样,返回结果给c
    printf("a=%d,b=%d\n", a, b);
    if (n == 1) printf("max=%d\n", c);    //最后输出结果c,并打印max
    else if (n == 2) printf("min=%d\n", c);    //上同,不过打印min
    return 0;
}


这段是演示函数指针的代码,这段代码是没问题,没错误的。
2017-01-16 21:01
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
回复 4楼 see235959850
vs2017有免费版本吗

Code is my life.
2017-01-16 21:05
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 7楼 bjut_Allen
有,社区版
2017-01-17 08:29
绿意盎然
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:47
专家分:60
注 册:2017-1-5
收藏
得分:0 
都是大侠啊
2017-01-17 14:55
快速回复:我照着答案打的,哪错了
数据加载中...
 
   



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

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