C++的一道编程题,我看不懂,求解释!

1、#include<iostream>usingnamespacestd;voidfun(int&a,int&b){intp;p=a;a=b;b=p;}voidexch... 1、#include<iostream >
using namespace std;
void fun(int &a,int &b)
{ int p;
p=a; a=b; b=p;
}
void exchange(int &a,int &b,int &c)
{ if(a<b)fun(a,b);
if(a<c)fun(a,c);
if(b<c)fun(b,c);
}
int main()
{ int a=12,b=89,c=56;
exchange(a,b,c);
cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;
return 0;
}
像开始的fun函数这里我就不知道是干嘛的,然后fun函数这里为什么要引用,下面exchange为什么再引用,就知道交换数值,是不是只交换a和b的值,和c没关系啊,最后结果是什么啊?求帮助!
展开
 我来答
叶片舟
2013-06-07 · TA获得超过652个赞
知道小有建树答主
回答量:285
采纳率:100%
帮助的人:318万
展开全部
这个程序的作用就是把a, b,c 按从小到大的顺序输出, 其中a 中存储的是最小的,b 是中间的,c是最大的

至于为什么是引用,首先清楚引用的作用的是变量的副本,副本改变,变量也会改变,同理,变量改变,副本也会改变。
exchange为什么是引用,原因是为了传递给fun的;fun 的引用是为了使被调函数内的数据交换能和主函数的交换保持一致,如果传递的不是引用,而是变量,那么传入的数只是变量的一份copy,所以在fun内交换的只是copy那份,而不是主函数那份。
jiaoxiangpu
2013-06-07 · TA获得超过512个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:266万
展开全部
fun函数的作用就是交换两个数的值。
exchange函数的作用是排序,最后a最大,b其次,c最小。
引用就是为了直接交换a,b,c的值,这里跟指针的意思是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0bf2197
2013-06-07 · TA获得超过943个赞
知道小有建树答主
回答量:596
采纳率:50%
帮助的人:106万
展开全部
、#include<iostream >

using namespace std;

//这个fun是交换数值的。不用引用的话,不会交换主函数的值。 
void fun(int &a,int &b)

{    int p;

        p=a; a=b; b=p;

}
额,这个函数是a>b>c.
// 
void exchange(int &a,int &b,int &c)

{  if(a<b)fun(a,b);

      if(a<c)fun(a,c);

      if(b<c)fun(b,c);

}

int main()

{  int a=12,b=89,c=56;

      exchange(a,b,c);

      cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;

      return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sleeplioncj
2013-06-07 · TA获得超过288个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:107万
展开全部
fun函数是交换两个数据,exchange函数是把这三个数字从小到大排序,a里面是最大的数字,c里面是最小的数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
前后距离75
2013-06-07 · TA获得超过1653个赞
知道小有建树答主
回答量:2545
采纳率:33%
帮助的人:945万
展开全部
引用可以修改实参但是不加引用的话,修改的只是实参的副本,交换不了数据。不明白继续问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式