/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:李晓凯
* 完成日期:2014年 12 月 28 日
* 版 本 号:v1.0
*
* 问题描述:用指针很引用法对三个数进行从小到大的排序
* 输入描述:输入三个数
* 程序输出:输出两组数组
*/
#include <iostream>
using namespace std;
void comp1(int *,int *,int *);
void comp2(int &,int &,int &);
void swap1(int *a,int *b);
void swap2(int &a,int &b);
int main()
{
int i,m,n;
int *p,*q,*r;
cin>>i>>m>>n;
p=&i;
q=&m;
r=&n;
comp1(p,q,r);
cout <<i<<" "<<m<<" "<<n<< endl;
comp2(i,m,n);
cout <<i<<" "<<m<<" "<<n<< endl;
return 0;
}
void comp1(int *x,int *y,int *z)
{
if(*x>*y)
swap1(x,y);
if(*x>*z)
swap1(x,z);
if(*y>*z)
swap1(y,z);
}
void swap1(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
void comp2(int &i,int &j,int &k)
{
if(i>j)
swap2(i,j);
if(i>k)
swap2(i,k);
if(j>k)
swap2(j,k);
}
void swap2(int &a,int &b)
{
int t;
t=a;
a=b;
b=t;
}