求三个数的最大值,怎么错了呢

#include <stdio.h>
int main()
{
int max(int x, int y, int z);
int a, b, c,d;
scanf_s(" % d, % d, % d", &a, &b, &c);
d = max(a, b, c);
printf("%d", d);
return 0;
}
int max(int x, int y, int z)
{
if (x > y)
max = x;
else max = y;
if (max > z)
max = max;
else max = z;
return (max);

}

望采纳,谢谢

#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);
d = maxnum(a, b, c);
printf("%d", d);
return 0;
}
int maxnum(int x, int y, int z)
{
int max;
if (x > y)
max = x;
else max = y;
if (max > z)
max = max;
else max = z;
return max;

}

语法上没错, 我估计是你输入的时候没有按scanf_s里面的格式输入

将scanf_s改为scanf

max函数中缺少max变量的定义


int max(int x, int y, int z)
{
    int max;
    if (x > y)
        max = x;
    else max = y;
    if (max > z)
        max = max;
    else max = z;
    return (max);
}

(1)max函数中,max没有声明,且跟函数重名了。
(2)scanf_s中,%和d之间不能有空格,%d和%d之间有逗号,输入数据的时候也要有逗号。
代码修改如下:

#include <stdio.h>
int main()
{
    int max(int x, int y, int z);
    int a, b, c, d;
    scanf_s("%d%d%d", &a,&b, &c);
    d = max(a, b, c);
    printf("%d", d);
    return 0;
}
int max(int x, int y, int z)
{
    int mm;
    if (x > y)
        mm = x;
    else mm = y;
    if (mm > z)
        mm = mm;
    else mm = z;
    return (mm);

}

输入及运行结果:

img