C 对于某些测试用例,if语句不起作用

C 对于某些测试用例,if语句不起作用,c,C,此代码不适用于测试用例17 13 3 15。在我尝试的其他测试用例中,它工作得非常好 #include <stdio.h> int max_of_four(int a,int b,int c,int d) { int max; a=max; if(b>max) max=b; if(c>max) max=c; if(d>max) max=d; return max; } int main() {

此代码不适用于测试用例17 13 3 15。在我尝试的其他测试用例中,它工作得非常好

#include <stdio.h>
int max_of_four(int a,int b,int c,int d)
{
    int max;
    a=max;
    if(b>max)
    max=b;
    if(c>max)
    max=c;
    if(d>max)
    max=d;
    return max;
}

int main() {
    int a, b, c, d;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    int ans = max_of_four(a, b, c, d);
    printf("%d", ans);

    return 0;
}
更改此声明

a=max;


在if语句中使用大括号。这个习惯可以防止将来的错误。还要检查scanfed hel的返回值,我已经在if语句中使用了大括号。我想你说的是大括号。因为我没有使用多个语句,所以没有必要使用大括号。避免尴尬的情况。撇开幽默不谈-让代码更容易阅读。宏观扩张是一个问题。也有人添加了if子句,但是忘记了没有括号……我肯定会在下一个代码中考虑它。
max = a;