用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);
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯