c语言求3个数中较大者

2024-12-03 16:37:36
推荐回答(5个)
回答1:

判断逻辑有问题,main函数里输出最大值应该取d的值而不是c的值。
例如:

x=3,y=1,z=2
if(x>y) s=x; //这里s变成x
if(x>z) s=x; //这里s仍然是x
if(z>y) s=z; //但是到这里s就变成z了,实际上最大值是x
改成如下代码:
int max(int x,int y,int z)
{
int s;
if(x>y && x>z) s=x;
else if(y>x && y>z) s=y;
else s=z;
return(s);
}

回答2:

你的判断逻辑有问题。举个例子:

x=3,y=1,z=2
if(x>y) s=x; //这里s变成x
if(x>z) s=x; //这里s仍然是x
if(z>y) s=z; //但是到这里s就变成z了,实际上最大值是x
改成如下代码:
int max(int x,int y,int z)
{
int s;
if(x>y && x>z) s=x;
else if(y>x && y>z) s=y;
else s=z;
return(s);
}

另外,main函数里输出最大值应该取d的值而不是c的值。

回答3:

定义三个变量,存放三个数
用if
else语句判断两个数大小
互相比较即得出最大数
用printf语句打印结果

回答4:

  1. main函数打印的时候, 打印d, 而不是c, printf("max=%d\n", d);

  2. max函数求三个数最大,不需要这么多判断。只需要判断两次

    x > y ?  (s = x) : (s = y);

    if (z > s) s = z;

    return s;

  3. max在main下方,要先声明下比较好, 在main函数上方加一句int max(int, int, int);

回答5:

main函数里:printf("max=%d\n",c);改为printf("max=%d\n",d);
max函数里面:{if(x>y&&x>z)return x;if(y>x&&y>z)return y;if(z>y&&z>x)return z;}
PS:不能比较存在相等的,如果输入的数有相等的,还得完善。