三数升序问题只要求输入三个数我却要输入四个数才行

输入是三个数输出升序问题

######可是我要输入四个数才能得出前三个数的升序结果

就像这样

img

#include 
#include 

int main()
{
    


int a, b, c;
    scanf("%d%d%d\n ", &a, &b, &c);
    if (a <= b && a <= c)
    {
        if (b <= c)
            printf("%d,%d,%d\n", a, b, c);
        else
            printf("%d,%d,%d\n", a, c, b);
    }
    else
    {
        if (b <= a && b <= c)
        {
            if (a <= c)
                printf("%d,%d,%d\n", b, a, c);
            else
                printf("%d,%d,%d\n", b, c, a);
        }

        else if (c <= a && c <= b)
        {
            if (a <= b)
                printf("%d,%d,%d\n", c, a, b);
            else
                printf("%d,%d,%d\n", c, b, a);
        }
    }
    return 0;
}


scanf函数的格式化字符串中,\n后的空格删掉

你的代码逻辑很清晰,没有问题。但是输入的scanf函数部分,尾部\n之后多了1个空格,删除即可。

修改后的代码如下

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

是换行后面的空格的问题,去掉就好了。