三个数最大值怎么判断,为什么这个不行

img


这个为什么不能判断三个数最大值

你这种也可以


#include <stdio.h>
int main()
{
    int a, b, c;
    printf("请输入a,b,c\n");
    scanf("%d %d %d", &a, &b, &c);
    if(a>b&&a>c)
         printf("max=%d",a);
     else if(b>c&&b>a)
         printf("max=%d",b);
     else
        printf("max=%d",c);
}

img


其他方法:也可使用a储存最大值

#include <stdio.h>
int main()
{
    int a, b, c;
    printf("请输入a,b,c");
    scanf("%d %d %d", &a, &b, &c);
    
    if (a<b)
        a=b;
    if (a<c)
        a=c;//a值为最大值
    printf("%d",a);
} 
  

img

是不是你输入的时候没有输逗号啊,scanf中用逗号的话,输入时每个数之间也必须用逗号分隔

在有2个或3个数相等的时候输出会出错

因为这个判断条件有漏洞,比如第一个if(a>b&&a>c),当a值满足两条件的时候是正确的,但出现a>b 条件满足,a<c 的时候,代码里就没有相应的处理了,就出现漏洞了。