c语言找出最大值,三个数

为什么输入数字7 8 6会出错呢?

img

#include

int main(void){
    int a;
    int b;
    int c;
    int d;
    int max;
    
    printf("请输入三个整数:");
    scanf("%d%d%d",&a,&b,&c);
    
    if(aelse
    max=a;
    if(b>c)
    max=b;
    else
    max=c;
    if(a>c)
    max=a;
    else
    max=c;
    d=max;
    
    printf("max=%d",d);
    
    return 0;
}


#include<stdio.h>int main() {
    int a, b, c, max;
    printf("请输入三个整数:\n");
    scanf("%d %d %d", &a, &b, &c); 
    max = a;
    if (b > max) {
        max = b;
    }
    if (c > max) {
        max = c;
    }
    printf("最大值为:%d\n", max);
    system("pause");
    return 0;
}
这样就可以了

img



// 简单分析你的程序思路
#if 0
#include<stdio.h>
int main(void)
{
    int a;
    int b;
    int c;
    int d;
    int max;
    printf("请输入三个整数:");
    // 输入 7 8 6
    scanf("%d%d%d", &a, &b, &c);
    if (a < b)
        max = b;
    else
        max = a;
    // 因为7<8 此时max=b=8

    if (b > c)
        max = b;
    else
        max = c;
    // 因为8>6 此时max=b=8

    if (a > c)
        max = a;
    else
        max = c;
    // 因为7>6 此时max=a=7

    d = max;
    // 此时d=7;

    printf("max=%d", d);
    // 输出最大值7

    return 0;
}

// 明显是逻辑不正确啊!

// 应该是下面这样写,
"#endif后面的代码"
#endif
#include<stdio.h>
int main(void)
{
    int a;
    int b;
    int c;
    int max;

    printf("请输入三个整数:");
    // 输入 7 8 6
    scanf("%d%d%d", &a, &b, &c);

    if (a > b)
    {
        if (a > c)
            max = a;
        else
            max = c;
    }
    else
    {
        if (b > c)
            max = b;
        else
            max = c;
    }

    printf("max=%d", max);

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^