c语言求三个数最大值

#include<stdio.h>
void main()
{
int max(int x,int y);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(max(a,b),c);
printf("max=%d/n",&d);
}
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return(z);
}
求解高手我哪里写错了啊,输出时候没能输出那个数

不常规方法:用函数指针变量调用函数
#include<stdio.h>
int max(int x,int y)
{
return (x>y?x:y);
}
main()
{
int (*p)(int,int); //定义p是指向函数的指针变量
int a,b,c,d;
p=max;//使p指向函数max
printf("输入3个数\n");
scanf("%d %d %d",&a,&b,&c);
d=(*p)(a,b);//通过指针变量p调用max函数
printf("max=%d\n",(*p)(d,c));
}
方法一:交换两个数
#include "stdio.h"
int main()
{ int a,b,c,t;
printf("输入3个数\n");
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("max=%d\n",c);
printf("%d %d %d",a,b,c);
}
方法2条件表达式,书上例题,
#include "stdio.h"
int main()
{
int max();//函数声明
extern int A,B,C; //外部变量声明
printf("输入3个数\n");
scanf("%d %d %d",&A,&B,&C);//输入外部变量的值
printf("max is %d\n",max());
}
int A,B,C;//定义外部变量
int max()
{
int m;
m=A>B?A:B;
if(C>m)
m=C;
return m;
}
以上可以改为
#include<stdio.h>
main()
{
int a,b,c;
printf("输入3个数\n");
scanf("%d %d %d",&a,&b,&c);
if(c>(a>b?a:b))
printf("max=%d\n",c);
else
printf("max=%d\n",a>b?a:b);
}
3 定义max函数
#include<stdio.h>
int max(int x,int y)
{
if (x>y) //或者直接语句return (x>y?x:y);
return x;
return y;
}
main()
{
int a,b,c,d;
printf("输入3个数\n");
scanf("%d %d %d",&a,&b,&c);
d=max(max(a,b),c);
printf("max=%d\n",d);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-08
#include<stdio.h>
int main()
{
int max(int x,int y);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c); //这样输入必须是类似:1,2,3
d=max(max(a,b),c);
printf("max=%d\n",d);//这个\n才是换行
return 0;
}
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return(z);
}
希望能帮到你本回答被提问者和网友采纳
第2个回答  2012-07-12
printf("max=%d/n",&d);-----> printf("max=%d/n",d);