#include <stdio.h>
main()
{
int a,b,c,d,t;
printf("please input a,b,c,d");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a<b)
t=a;a=b;b=t;
if(a<c)
t=a ;a=c;c=t;
if(a<d)
t=a;a=d;d=t;
if(b<c)
t=b;b=c;c=t;
if(b<d)
t=b;b=d;d=t;
if(c<d)
t=c;c=d;d=t;
printf("从大到小排列");
printf("%d>%d>%d>%d",a,b,c,d);
}
为什么我的程序有的结果对,有的结果不对啊,求大神帮忙看看
结果正确,麻烦你告诉我这是为什么啊
追答后面不是解释了么,
就用你的第一个if判断来说吧,
if(a=b,如a=7,b=4就会变成下面这样子
if(a=b所以这句跳过,所以t并没有被赋值7
}
a=b; //因为与if判断无关所以执行,结果a=4,b=4,t还是没有赋值
b=t; //因为t没有被赋值,所以b=t无法执行,所以就报错了。。。。