独狼阻击手 发表于 2021-10-6 23:08:52

求三者中的最大者,大佬们这个错在哪里?

#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);
}

大马强 发表于 2021-10-6 23:19:11

你是输入格式是不是错了,我用你代码测试了三轮
1、2,3,4
2、4,3,2
3、2,4,3
都没问题,但是上面的是用英文逗号隔开,你注意检查下,如果还是有问题的话,发出你的输入

@littlefool 发表于 2021-10-7 09:38:22

你用的是系统自带的函数名max,那在比较的时候就自动用系统带用的max来比较,但max内置是比较两个整数,所以第三个数是不比较的,你会看到,你再怎么输入,它都只比较前面两个数的大小。
所以你自己写的max这个函数,事实上是不启作用的(有时候甚至会报错),你现在把你的函数名max,全部改成maxa(就是另外命名),这样就可以了。

独狼阻击手 发表于 2021-10-7 14:44:00

大马强 发表于 2021-10-6 23:19
你是输入格式是不是错了,我用你代码测试了三轮
1、2,3,4
2、4,3,2


代码没问题,就是输出结果,老是第一位

大马强 发表于 2021-10-7 15:50:04

独狼阻击手 发表于 2021-10-7 14:44
代码没问题,就是输出结果,老是第一位

我用devc++没啥事,要不你试试三楼方法

傻眼貓咪 发表于 2021-10-7 16:14:16

代码我试了,完全没有问题啊~

独狼阻击手 发表于 2021-10-8 09:48:18

@littlefool 发表于 2021-10-7 09:38
你用的是系统自带的函数名max,那在比较的时候就自动用系统带用的max来比较,但max内置是比较两个整数,所 ...

好的。谢谢

傻眼貓咪 发表于 2021-10-8 15:26:09

#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]
查看完整版本: 求三者中的最大者,大佬们这个错在哪里?