一般来说排序三个整数的老办法应该是这样的
#include<stdio.h>
int main() {
int x, y, z;
int a, b, c;
scanf("%d%d%d", &x, &y, &z);
if (x > y) {
if (z > x) { a = z; b = x; c = y; }
else if (z > y) { a = x; b = z; c = y; }
else { a = x; b = y; c = z; }
}
else
{
if (z > y) { a = z; b = y; c = x; }
else if (z > x) { a = y; b = z; c = x; }
else { a = y; b = x; c = z; }
}
printf("%d->%d->%d", c, b, a);
return 0;
}
但是最近突然想到一个新办法,如果我用循环方式,让他所有部分都可以按序换位置,然后直到循环到我想要的顺序就跳出,是不是也可以,于是我写出来下面代码
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d %d", &a, &b, &c);
while (1)
{
if (a < b)
{
int tmp = a;
a = b;
b = tmp;
}
if (b < c)
{
int tmp = b;
b = c;
c = tmp;
}
if (a > b && b > c)
break;
}
printf("%d %d %d", a, b, c);
return 0;
}
不得不说,这次我突破了以往的限制,想到了一个新的办法来解决这个问题,挺高兴的,我在高兴之余还在想,这种思路,可不可以拓展一下,以后面对复杂的排序,是不是可以拆分成部分排序然后一直循环直到我想要的顺序再跳出,以后我要是有机会我会试试的