c语言可表示最大数,用C语言表示三个数中的最大者

用C语言表示三个数中的最大者

答案:4  信息版本:手机版

解决时间 2020-03-29 03:20

已解决

2020-03-28 23:09

#include

int main()

{

int max(int x,int y,int m);

int a,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("%d\n",d);

return 0;

}

{

int max(int x,int y,int m);

int z=0;

if(z

z=x;

if(z

z=y;

if(z

z=m;

return (z);

}

不知哪里错啦。。。求大神帮助 谢谢

全部回答

1楼

2020-03-29 02:44

max函数里的if(x>y>z)那样写编译器是不会检查出错误,但不能实现你要的“求三个数的最大者”,c里的x>y>z跟数学里的x>y>z意思是不一样的。。如假设:x=3,y=2,z=1;c里的if(x>y>z)是从左到右先判断第一个“>”,即判断x>y,因为x=3,y=2,所以x>y为真,x>y的值1,那么x>y>z中第二个“>”号就变成判断1>z,z=1,所以1>z就为假,虽然3>2>1,但if(x>y>z)还是为假。。。

max函数可以这样写,方法不唯一,能理解就可以:

int max(int x,int y,int z)

{

int max;

max=x>y?x:y;

max=max>z?max:z;

return max;

}

2楼

2020-03-29 01:40

#include

int main()

{

int max(int x,int y,int m);

int a,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("%d\n",d);

return 0;

}

int max(int x,int y,int m)

{

int z;

if(x

z=y;

if(z

z=m;

return (z);

}

修改过后的程序,两处错误,自己对比下就知道了

3楼

2020-03-29 01:04

正确程序

#include

int main()

{

int max(int x,int y,int m);

int a,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("%d\n",d);

return 0;

}

int max(int x,int y,int m);

{

int z=0;

if(z

z=x;

if(z

z=y;

if(z

z=m;

return (z);

}

4楼

2020-03-29 00:19

#include

int max(int x,int y,int m);//这个提前到这里,

int main()

{

//int max(int x,int y,int m);虽然放在这里也不错

int a,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("%d\n",d);

return 0;

}

//{这个去掉

int max(int x,int y,int m) {//加上{ //;这个去掉

int z=0;

if(z

z=x;

if(z

z=y;

if(z

z=m;

return (z);

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值