求三者中的最大者,大佬们这个错在哪里?
#include <stdio.h>int main()
{
int max(int x, int y, int k);
int a, b, c, d;
scanf("%d,%d,%d",&a,&b,&c);
d = max(a,b,c);
printf("max=%d\n",d);
return 0;
}
int max(int x, int y,int k )
{
int z;
if(x > y && x > k)z = x;
if(y > k && y > x)z = y;
if(k > x && k > y)z = k;
return (z);
} 你是输入格式是不是错了,我用你代码测试了三轮
1、2,3,4
2、4,3,2
3、2,4,3
都没问题,但是上面的是用英文逗号隔开,你注意检查下,如果还是有问题的话,发出你的输入 你用的是系统自带的函数名max,那在比较的时候就自动用系统带用的max来比较,但max内置是比较两个整数,所以第三个数是不比较的,你会看到,你再怎么输入,它都只比较前面两个数的大小。
所以你自己写的max这个函数,事实上是不启作用的(有时候甚至会报错),你现在把你的函数名max,全部改成maxa(就是另外命名),这样就可以了。 大马强 发表于 2021-10-6 23:19
你是输入格式是不是错了,我用你代码测试了三轮
1、2,3,4
2、4,3,2
代码没问题,就是输出结果,老是第一位
独狼阻击手 发表于 2021-10-7 14:44
代码没问题,就是输出结果,老是第一位
我用devc++没啥事,要不你试试三楼方法 代码我试了,完全没有问题啊~ @littlefool 发表于 2021-10-7 09:38
你用的是系统自带的函数名max,那在比较的时候就自动用系统带用的max来比较,但max内置是比较两个整数,所 ...
好的。谢谢
#include <stdio.h>
int Max(int x, int y, int z){
if(x > y && x > z) return x;
else if(y > x && y > z) return y;
else if(z > x && z > y) return z;
}
int main(){
int x, y, z;
scanf("%d %d %d", &x, &y, &z);
printf("%d", Max(x, y, z));
return 0;
}13 5 7
13
页:
[1]