求大神帮忙看看这个排序哪儿错了
提示: 作者被禁止或删除 内容自动屏蔽
//简单的冒泡排序 #include<stdio.h> int main() { int a[4]; int t,i,j; printf("请输入四个整数:"); for(t=0;t<4;t++) { scanf("%d",&a[t]); } for(j=0;j<4;j++) { for(i=j;i<3;i++) { int temp; if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } } for(t=0;t<4;t++) { printf("%4d",a[t]); } return 0; }
#include<stdio.h> void main() { int a,b,c,d,t; scanf("%d%d%d%d",&a,&b,&c,&d); if(a>b){t=a;a=b;b=t;} if(b>c){t=b;b=c;c=t;} if(c>d){t=c;c=d;d=t;} //往上三行的功能是把最大的放到d // if(b>c){t=b;b=c;c=t;} if(a>b){t=a;a=b;b=t;} if(b>c){t=b;b=c;c=t;} //这两行应该是把abc中最大的放到c,可惜写反了, //应该先比较ab // if(b>c){t=b;b=c;c=t;} if(a>b){t=a;a=b;b=t;} //想想也知道,应该比较最前面两个了 printf("%d,%d,%d,%d\n",a,b,c,d); } //其实还是冒泡排序吧。。。 //用循环,就可以少些很多行代码了