废话不多说,直接上代码:
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
int *x,*y,*z;
void max(int *x,int *y,int *z);
cout<<"请输入三个数字:";
cin>>a>>b>>c;
x=&a;
y=&b;
z=&c;
max(x,y,z);
cout<<"a="<<a<<" "<<"b="<<b<<" "<<"c="<<c<<" ";
return 0;
}
void max(int *x,int *y,int *z)
{
void swap(int *a,int *b);
if(*x>*y)swap(x,y);
if(*x>*z)swap(x,z);
if(*y>*z)swap(z,y);
}
void swap(int *a,int *b)
{
int z;
z=*a;
*a=*b;
*b=z;
}
**
关键:
**
void max(int *x,int *y,int *z)
{
void swap(int *a,int *b);
if(*x>*y)swap(x,y);
if(*x>*z)swap(x,z);
if(*y>*z)swap(z,y);
}
如果我们是从小到大的话,上述代码需要用大于,以为从小到大排序我们需要从第一个数判断它是否大于后面的数字,然后依次判断第一个与第二个、第三个。接着,第二个与第三个。
如果我们从大到小的话,上述代码需要用小于号,如果第一个比其他数小就交换,所以用小于号。接着第一个与第二个、第三个。第二个与第三个。