/*
*Copyright(c)2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:满星辰
*完成日期:2014年 12月 22日
*版本号:v1.0
*/
为三个数排序= =,
指针法:
#include <iostream>
using namespace std;
void cmp(int *x,int *y,int *z);
int main()
{
int a,b,c;
cin>>a>>b>>c;
cmp(&a,&b,&c);
cout <<a<<' '<<b<<' '<<c<< endl;
return 0;
}
void cmp(int *x,int *y,int *z)
{
int t,M,m,Mm;
if(*x>*y&&*x>*z)
{
M=*x;
if(*y>*z)
{
Mm=*y;
m=*z;
}
else
{
Mm=*z;
m=*y;
}
}
else if(*y>*x&&*y>*z)
{
M=*y;
if(*x>*z)
{
Mm=*x;
m=*z;
}
else
{
Mm=*z;
m=*x;
}
}
else if(*z>*y&&*z>*x)
{
M=*z;
if(*y>*x)
{
Mm=*y;
m=*x;
}
else
{
Mm=*x;
m=*y;
}
}
*x=M;
*y=Mm;
*z=m;
return;
}
引用法:
#include <iostream>
using namespace std;
void cmp(int &x,int &y,int &z);
int main()
{
int a,b,c;
cin>>a>>b>>c;
cmp(a,b,c);
cout <<a<<' '<<b<<' '<<c<< endl;
return 0;
}
void cmp(int &x,int &y,int &z)
{
int t,M,m,Mm;
if(x>y&&x>z)
{
M=x;
if(y>z)
{
Mm=y;
m=z;
}
else
{
Mm=z;
m=y;
}
}
else if(y>x&&y>z)
{
M=y;
if(x>z)
{
Mm=x;
m=z;
}
else
{
Mm=z;
m=x;
}
}
else if(z>y&&z>x)
{
M=z;
if(y>x)
{
Mm=y;
m=x;
}
else
{
Mm=x;
m=y;
}
}
x=M;
y=Mm;
z=m;
return;
}
运行展示:
学习心得:
觉得这两个没啥区别。。。
就是 * 和 & 的运用不同