不知道错在哪,大家看看吧



#include<stdio.h>
int max(int x,int y)
{
    if(x>y)
    return x;
    else
    return y;
}
int main()
{
    int max(x,y);
    int *p=&max(x,y);
    int a,b,c,d;
    char *str=(char*)malloc(100);
    printf(str, "Please input three integer n");
    prntf(%s,str),
    scanf("%d%d%d", a,b,c);
    d=*p((*p)(a,b),c);
    printf("Amang %d,%d,%d,the max integer is %d\n".a,b,c,d); 
    return O;
}

int max(x,y);这里x和y的类型么有说明
int *p=&max(x,y);这里这么写也不对
prntf(%s,str),这里拼写错误,也漏了""
...
错误太多了,你这是要做函数指针的测试啊。
代码修改如下:

img



#include <stdio.h>
#include <stdlib.h>
int max(int x,int y)
{
    if(x>y)
        return x;
    else
        return y;
}
int main()
{    
    int (*p)(int ,int)=max; //函数指针这么写

    int a,b,c,d;
    //char *str=(char*)malloc(100); //这一句也没啥用
    printf("Please input three integer n");
    //prntf("%s",str);
    scanf("%d%d%d", &a,&b,&c); //这里需要&
    d=(*p)((*p)(a,b),c);
    printf("Amang %d,%d,%d,the max integer is %d\n",a,b,c,d); 
    return 0;
}

#include<stdio.h>
int max(int x,int y)
{
    if(x>y)
    return x;
    else
    return y;
}
int main()
{
    int max(x,y);//x,y需要定义,需要初始化。
    int *p=&max(x,y);
    int a,b,c,d;
    char *str=(char*)malloc(100);
    printf(str, "Please input three integer n");
    prntf(%s,str),//printf("%s",str);
    scanf("%d%d%d", a,b,c);
    d=*p((*p)(a,b),c);
    printf("Amang %d,%d,%d,the max integer is %d\n".a,b,c,d); //printf("Amang %d,%d,%d,the max integer is %d\n",a,b,c,d); 
    return O;//O?????0????
}

写代码还是要仔细啊,就算是复制的,也要自己检查一下先