/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2013年 12月17 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 三个数
*问题描述:通过两种方法(指针和引用)排序三个数,
并按由大到小顺序输出
*程序输出:三个从大小的数
*问题分析:
*算法设计:
*/
#include<iostream>
using namespace std;
void change(int*,int*);
void fsort(int*,int*,int*);
void ysort(int&,int&,int&);
int main()
{
int a,b,c;
cout<<"请输入三个数:"<<endl;
cin>>a>>b>>c;
fsort(&a,&b,&c);
ysort(a,b,c);
return 0;
}
void fsort(int *a,int *b,int *c)
{
//指针传值法排序三数大小
if(*a<*b)
{
change (a,b);
}
if(*a<*c)
{
change (a,c);
}
if(*b<*c)
{
change (b,c);
}
cout<<*a<<" "<<*b<<" "<<*c<<endl;
}
void ysort(int &a,int &b,int &c)
{
//引用传值法排序三数大小
if(a<b)
{
change (&a,&b);
}
if(a<c)
{
change (&a,&c);
}
if(b<c)
{
change (&b,&c);
}
cout<<a<<" "<<b<<" "<<c<<endl;
}
void change (int *a,int *b)
{
//交换两数的函数
//以上两个函数均用到了这个函数
int t;
t=*b;
*b=*a;
*a=t;
}
运行结果:
心得体会: