方法一(直接交换)
cpp
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
//可以这么写 想办法把a换成最大的数 ,之后是b c
int temp;
if(a<b)
{
temp=a;
a=b;
b=temp;
}
if(a<c)
{
temp=a;
a=c;
c=temp;
}
if(b<c)
{
temp=b;
b=c;
c=temp;
}
printf("排序后的三个数为:%d %d %d\n",a,b,c);
return 0;
}
方法二(冒泡排序思想)
cpp
#include<stdio.h>
int main()
{
int a[3];
for(int i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<3-1;i++)
{
for(int j=0;j<3-i-1;j++)
{
if(a[j]<a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排序后的三个数为:");
for(int i=0;i<3;i++) printf("%d ",a[i]);
return 0;
}
延伸到对n个数排序
这里还是使用冒泡排序的思想
cpp
#include<stdio.h>
int main()
{
int n,a[1005];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]<a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排序后的%d个数为:",n);
for(int i=0;i<n;i++) printf("%d ",a[i]);
return 0;
}