求三个数中最大值,请指出我的错误!!

img

img

我刚开始学,这个是根据自己理解写的,不知道错在哪里,哪位大佬帮忙看看

int main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    printf("max(%d,%d,%d)=%d",a,b,c,max(a,b,c));
    return 0;
}
int max(int x,int y,int z)
{
    int t;
    if(x>=y && x>=z) t = x; 
    else if(y>=x && y>=z) t = y; 
    else t = z;
    return t;
}

使用三项式求最大值更简洁

#define MAX(a,b,c) a >= b ? a >= c ? a : c : b >= c ? b : c;

不过楼主还是先看看书学习一下C语言的语法,这是最基础的东西

if里的逗号换成 &&

修改如下:

#include <stdio.h>
int main()
{
    int max(int x,int y,int z);
    int a,b,c,d;
    scanf("%d,%d,%d",&a,&b,&c);
    printf("max(%d,%d,%d)=%d",a,b,c,max(a,b,c));  //修改1
    return 0;
}
int max(int x,int y,int z)
{
    int t;
    if(x>y && y>z) t = x;  //修改2
    else if(y>x && y>z) t = y; //修改3
    else t = z;
    return t;
}