C语言中将三个数字进行排序的几种写法

如题所述

方法1:用3个变量存放3个数字,按从大到小的顺序排:

int a,b,c,tmp;

printf("请输入3个数字:");

scanf("%d%d%d",&a,&b,&c);

if(a<b)//如果a比b小,交换a和b的值,使a存放大的数字

{

tmp=a;

a=b;

b=tmp;

}

if(a<c)//如果a比c小,交换a和c的值,使a存放大的数字

{

tmp=a;

a=c;

c=tmp;

}

if(b<c)//如果b比c小,交换b和c的值,使b存放大的数字

{

tmp=b;

b=c;

c=tmp;

}

printf("按照从大到小的顺序为:%d,%d,%d\n",a,b,c);

方法2:用数组存放3个变量,用冒泡排序的方法进行排序

int i=0,j=0,tmp=0,a[3];

printf("请输入3个数字:");

for(i=0;i<3;i++)

scanf("%d",&a[i]);

for(i=0;i<2;i++)

for(j=0;j<2-i;j++)

if(a[i]<a[i+1])//按照从大到小排列

{

tmp=a[i];

a[i]=a[i+1];

a[i+1]=tmp;

}

printf("按照从大到小的顺序为:");

for(i=0;i<3;i++)

printf("%d  ",&a[i]);

printf("\n");

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-27

方法1:用3个变量存放3个数字,按从大到小的顺序排:

int a,b,c,tmp;

printf("请输入3个数字:");

scanf("%d%d%d",&a,&b,&c);

if(a<b)//如果a比b小,交换a和b的值,使a存放大的数字

{

tmp=a;

a=b;

b=tmp;

}

if(a<c)//如果a比c小,交换a和c的值,使a存放大的数字

{

tmp=a;

a=c;

c=tmp;

}

if(b<c)//如果b比c小,交换b和c的值,使b存放大的数字

{

tmp=b;

b=c;

c=tmp;

}

printf("按照从大到小的顺序为:%d,%d,%d\n",a,b,c);

1

   

方法2:用数组存放3个变量,用冒泡排序的方法进行排序

   

int i=0,j=0,tmp=0,a[3];

printf("请输入3个数字:");

for(i=0;i<3;i++)

scanf("%d",&a[i]);

for(i=0;i<2;i++)

for(j=0;j<2-i;j++)

if(a[i]<a[i+1])//按照从大到小排列

{

tmp=a[i];

a[i]=a[i+1];

a[i+1]=tmp;

}

printf("按照从大到小的顺序为:");

for(i=0;i<3;i++)

printf("%d  ",&a[i]);

printf("\n");

相似回答