关于#由大到小排序#的问题,如何解决?

#include
int main()
{
int a,b,c,d,t;
scanf("%d4",&a,&b,&c,&d);
if(a
{
t=a;
a=b;
b=t;
}
if(a
{
t=a;
a=c;
c=t;
}
if(a
{
t=a;
a=c;
c=t;
}
if(b
{
t=b;
b=c;
c=t;
}
if(b
{
t=b;
b=d;
d=t;
}
if(c
{
t=c;
c=d;
d=t;
}
printf("%d
4",a,b,c,d);
return 0;
}
为什么无论我输入什么,都输出第一个数和三个零?


scanf("%d4",&a,&b,&c,&d);//这是错误的写法
scanf("%d%d%d&d",&a,&b,&c,&d);//正确写法

如果你是printf("%d %d %d %d",&a,&b,&c,&d);那么你输入时,四个整数之间不能用逗号分隔
反之,如果printf中%d之间用逗号分隔,那么输入时,四个数之间必须用逗号分隔