一般类型:
将三个整数由大到小或由小到大排
方法如下:
取降序排法
方法1:
最常见的两数比较交换如:
int main()
{
int a = 0, b = 0, c = 0, d = 0;
scanf("%d%d%d", &a, &b, &c);
if (a < c)
{
d = a;
a = c;
c = d;
}
if (a < b)
{
d = a;
a = b;
b = d;
}
if (b < c)
{
d = b;
b = c;
c = d;
}
printf("%d %d %d\n", a, b, c);
return 0;
}
此方法也有变形:比如要求不用第三个值使两数交换代码如下
int main()
{
int a = 0, b = 0;
scanf("%d%d", &a, &b);
if (a < b)
{
a = a + b;
b = a - b;
a = a - b;
}
方法2:
采用指针:
void f1(int* a, int* b)
{
int i = *a;
*a = *b;
*b = i;
}//此函数采用指针使a,b值交换且值不会释放
int main()
{
int a = 0, b = 0, c = 0;
scanf("%d%d%d", &a, &b, &c);
if (a < b)
f1(&a, &b);
if (a < c)
f1(&a, &c);
if (b < c)
f1(&b, &c);
printf("%d %d %d", a, b, c);
return 0;
}
总结:以上两种方法均可,建议使用函数方法快捷有效;
若要求升序则:
printf("%d %d %d", c, b, a);
即可。