/*1018 数的排序
写法一:最笨的方法,把六种情况列出来
#include <stdio.h>
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if (a>b&&b>c)
printf("%d,%d,%d",c,b,a);
if (a>c&&c>b)
printf("%d,%d,%d",b,c,a);
if (b>a&&a>c)
printf("%d,%d,%d",c,a,b);
if (b>c&&c>a)
printf("%d,%d,%d",a,c,b);
if (c>b&&b>a)
printf("%d,%d,%d",a,b,c);
if (c>a&&a>b)
printf("%d,%d,%d",b,a,c);
return 0;
}
写法二:两个两个比较,只用于比较数量少于等于三个,多的很复杂
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)//先第一个数和第二个数比较,已经排好第一个和第二的顺序了//
{
t=a;
a=b;
b=t;
}
if(b>c)//现在比较第三个和第二的顺序,如果第三个比第二个小,往前排;//
{
t=b;
b=c;
c=t;
}
if(a>b)//现在比较第一个和第二的顺序,如果第二个更小,往前排;//
{
t=a;
a=b;
b=t;
}
printf("%d,%d,%d",a,b,c);
return 0;
}
写法三:利用循环排序
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[3],i,j,t;
scanf("%d,%d,%d",&a[0],&a[1],&a[2]);
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)//要从i的后一个进行;//
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("%d,%d,%d",a[0],a[1],a[2]);
return 0;
}
写法四:冒泡排序,多用于升序排列
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[3],i,j,t;
scanf("%d,%d,%d",&a[0],&a[1],&a[2]);
for(i=0;i<3-1;i++)
{
for(j=0;j<3-1-i;j++)//要从i的后一个进行;//
{
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
printf("%d,%d,%d",a[0],a[1],a[2]);//这道题的格式要求有个逗号……正常的话可以用循环输出,就不用写那么多东西了//
return 0;
}*/