C语言高手来啊

来源:百度知道 编辑:UC知道 时间:2024/05/13 17:32:46
#include<stdio.h>
void main()
{
int max(int x,int y,int z);
int a,b,c,d;
printf("Please input three numbers.\n");
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d",d);
getch();
}
int max(int x,int y,int z)
{
int k;
if(x>y>z)k=x;
if(x>z>y)k=x;
if(y>x>z)k=y;
if(y>z>x)k=y;
if(z>y>x)k=z;
if(z>x>y)k=z;
return(k);
}
我想要的结果是,输入3个数,输出其中最大的数。但是却没有这个效果。到底问题出在哪里?

if(x>y>z)k=x;
x>y>z相当于(x>y)>z,是先进行x和y的大小比较,然后把结果的真值和z进行比较,大概和你的本意不符了。
应该写作:
if (x>y && y>z)
k=x;

if(x>y>z)k=x;
if(x>z>y)k=x;
if(y>x>z)k=y;
if(y>z>x)k=y;
if(z>y>x)k=z;
if(z>x>y)k=z;
这句话错误!!
改为:if(x>y&&x>z&&y>z)替换(if(x>y>z)k=x; )
~~下面的该法一样!不再写了!1

x>y>z好象是错的。。。。
正确应该写成if ((x>y)&(y>z))

改了试试吧

(x>y>z)//没这种写法~