思路:如果利用if进行三个数a,b,b的排序,则先利用if判断a和b的大小,把小数赋值给a大数赋值给b,再利用if判断c和b的大小,把小数赋值给b大数赋值给c,则c就是最大值,最后比较a和b的大小,把小数赋值给a大数赋值给b,则a就是最小数,b是中间值,输出a,b,c就是排序后数。
创新互联建站-专业网站定制、快速模板网站建设、高性价比定海网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式定海网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖定海地区。费用合理售后完善,10年实体公司更值得信赖。
参考代码:
#include stdio.h
int main()
{
int a,b,c,t;
scanf("%d%d%d",a,b,c);
if(ab)//前判断a和b的大小
{t=b;b=a;a=t;}
if(bc)//再判断b和c的大小
{t=b;b=c;c=t;}
if(ab)//最后判断a和b的大小
{t=a;a=b;b=t;}
printf("%d%d%d",a,b,c);
return 0;
}
/*
输出:
5 1 9
159
*/
初学简单版本代码如下:
#includestdio.h
int main( )
{
int a, b, c;//定义三个数的变量
int t ;//定义作为交换的变量
scanf ( "%d%d%d" , a, b, c ) ; //取值
if ( a b )
{t = a; a = b; b = t ;};//如果a,b,进行交换,反之不动
if ( a c )
{t = a; a = c; c = t ;};//同上
if ( b c )
{t = b; b = c; c = t ;};
printf( "%-5d%-5d%-5d\n" , a, b, c);//输出
}
扩展资料:
C语言中其他多个数排序的方法:
1、冒泡排序法
#include stdio.h
#define SIZE 8
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{
int i, j, temp;
for (j = 0; j n - 1; j++)
for (i = 0; i n - 1 - j; i++)
{
if(a[i] a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
} } }
int main()
{
int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
int i;
bubble_sort(number, SIZE);
for (i = 0; i SIZE; i++)
{
printf("%d\n", number[i]);
}
}
2、选择排序
#includestdio.h
void main()//主函数
{
int a[10];
int i,j,w;
printf("请输入10个数字: \n");
for(i=0;i10;i++)
scanf("%d",a[i]);
for(i=0;i10;i++)
{
for(j=i+1;j10;j++)
if(a[i]a[j])//进行比较
//比较后进行交换
{
w=a[i];
a[i]=a[j];
a[j]=w;
}
最小用min 不要用main. 这个是主函数名 不能和变量重复的.
# include stdio.h
int main (void)
{
int a,b,c,max,min;
scanf("%d %d %d",a,b,c);
max = ab?a:b;
min = ab?a:b;
if( cmax ) max = c;
if( cmin ) min = c;//这里用
printf("从大到小排序:%d %d %d\n",max,a+b+c-max-min,min);
return 0;
}
#includestdio.h
mian()
{
int f(int *pointer1,int *pointer2,int *pointer3); \\对要进行调用的函数进行声明
int change(int *po1,int *po2);
int a,b,c,*p1,*p2,*p3; \\定义整形三个变量和三个指针变量。
scanf("%d %d %d",a,b,c);
p1=a; p2=b; p3=c;
f(*p1,*p2,*p3); \\调用函数f()
printf("排序后的三个数为:%d%d%d\n",a,b,c);
}
int f(int *pointer1,int *pointer2,int *pointer3)
{
if(*pointer1*pointer2) change(*pointer1,*pointer2);
if(*pointer1*pointer3) change(*pointer1,*pointer3);
if(*pointer2*pointer3) change(*pointer2,*pointer3);
}
int change(int *po1,int *po2)
{
int t;
t=*po1;
*po1=*po2;
*po2=t;
}
原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。
方法如下:
分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,
然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。
1.从控制台读入三个数;
2.实现三个数从小到大排序:
(1)将第一个数作为最小数,依次和第二,三个数进行比较。两次比较重如果有任意一个比第一个小,则将两个数交换
;
(2)在(1)步后,得到第一个数为最小数。再将第二个数与第三个数比较大小后即可实现三个数从小到大排序。
拓展资料
两种常用排序方法:
1.选择排序法:从一列数中,选择第一个作为最小数,依次和后面的数进行比较。如有比第一个数小的数,则交换两个数。最后排到该列数都倒数第二个时,这列数就从小到大排好了顺序。
2.冒泡排序法:思路与选择排序法一致。不同的是,冒泡排序将第一个作为最大数,然后再和该数后的数进行比较。