注册 登录
编程论坛 C++教室

求助:模板例题排序为什么不排

yj9501 发布于 2012-08-25 21:03, 423 次点击
请教各位大虾,为什么我执行这个程序不会排序?


//三个数按最小值到最大值排序
template <class T>
void order(T&x,T&y,T&z)
{
    T a;
    if (x>y) {a=x;x=y;y=a;}
    if (y>z) {a=y;z=y;y=a;}
    if (x>y) {a=x;x=y;y=a;}
    }

#include <iostream.h>
void main ()
{
    void order(double&x,double&y,double&z);
    int a=19,b=7,c=10;
    double x=50.5,y=2.5;
    int m=34;

    order(a,b,c);
    cout<<a<<"<"<<b<<"<"<<c<<endl;
    order(x,y,m);
    cout<<x<<"<"<<y<<"<"<<m<<endl;
}
1 回复
#2
pangding2012-08-27 03:54
你看看这句:if (y>z) {a=y;z=y;y=a;}
这是换两个数吗?这只是让 z 也等于 y 而已。要细心。

另外,这句是什么意思:
void order(double&x,double&y,double&z);
最后为什么还要传一个 int m 过去?
1