一般的当数字有三个时我们经常使用的,定义4个变量,变量t作为中间值用来交换两个变量的值的。
我们需要把a与b 比较a与c比较,在把b与c比较。如果满足就交换他们的值,最后实际输出的a,b,c正好是从小到大排序后的值。(一定要注意判断的顺序)
#include<stdio.h>
int main (){
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b){
t=b;
b=a;
a=t;
}
if(a>c){
t=c;
c=a;
a=t;
}
if(b>c){
t=c;
c=b;
b=t;
}//这里一定要依次判断,不能a>b,b>c,a>c这样的顺序判断,你可以假设321,如果以这样的顺序判断的话就错了
printf("%d %d %d",a,b,c);
return 0;
}
那么,如果需要排序的数不止三个那么怎么办呢?
实际上通过这些判断a>b,a>c,b>c,我们可以知道每个数都依次参与了判断。所以我们可以用循环来整
这里我用4个数来整
#include<stdio.h>
int main() {
int i,j,t,a[4];
for(int b=0;b<4;b++){
scanf("%d",&a[b]);
}
for(i=0;i<4;i++){
for(j=i+1;j<4;j++){
if(a[j]<a[i]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
printf("%d ",a[i]);
}
return 0;
}