weixin_45111806 2020-03-08 20:17 采纳率: 0%
浏览 863

C++三个数从小到大排序/输出(引用),但是输什么结果都不变

1.不知道为什么这一段不管输入什么都原样输出

#include<iostream>
using namespace std;

template<typename T>
//排序函数
void sort(T &a,T &b,T &c)     //对a,b,c 3个数排序。
{
    void exchange(T &a,T &b);     //函数声明形参是引用。

    if(a>b)
        exchange(a,b);   //a<=b

    if(a>c)
        exchange(a,c);   //a<=c

    if(b>c)
        exchange(b,c);   //b<=c 
}

template<typename S>
//互换函数
void exchange(S &a,S &b)//形参是引用
{
    S temp;
    temp=a;
    a=b;
    b=temp;

}



int main( )
{
    int a,b,c;
    cin>>a>>b>>c;//输入3个数
    float d,e,f;
    cin>>d>>e>>f;
    double x,y,z;
    cin>>x>>y>>z;

    sort(a,b,c);//调用排序函数
    cout<<a<<"  "<<b<<"  "<<c<<endl;//输出排序后的数字
    sort(d,e,f);
    cout<<d<<"  "<<e<<"  "<<f<<endl;
    sort(x,y,z);
    cout<<x<<"  "<<y<<"  "<<z<<endl;
    return 0;
}

chou多了总觉得合理,看不出问题

  • 写回答

2条回答 默认 最新

  • tawufa 2020-03-08 21:43
    关注

    我把你的代码放vs里面运行了一下发现编不过,之后稍微调整了一下,发现没问题能正常输出:
    代码调整如下(没改变逻辑,就改变一下函数的位置):

    #include <iostream>
    using namespace std;
    
    template<typename T>
    //互换函数
    void exchange(T &a,T&b)//形参是引用
    {
        T temp;
        temp=a;
        a=b;
        b=temp;
    }
    
    template<typename T>
    //排序函数
    void sort(T &a,T &b,T &c)     //对a,b,c 3个数排序。
    {
        //void exchange(T &a,T &b);     //函数声明形参是引用。
    
        if(a>b)
            exchange(a,b);   //a<=b
    
        if(a>c)
            exchange(a,c);   //a<=c
    
        if(b>c)
            exchange(b,c);   //b<=c 
    }
    
    
    int main( )
    {
        int a,b,c;
        cin>>a>>b>>c;//输入3个数
        float d,e,f;
        cin>>d>>e>>f;
        double x,y,z;
        cin>>x>>y>>z;
    
        sort(a,b,c);//调用排序函数
        cout<<a<<"  "<<b<<"  "<<c<<endl;//输出排序后的数字
        sort(d,e,f);
        cout<<d<<"  "<<e<<"  "<<f<<endl;
        sort(x,y,z);
        cout<<x<<"  "<<y<<"  "<<z<<endl;
        return 0;
    }
    

    输出结果为:
    图片说明
    没啥问题,我也不知道你自己的具体情况,所以没办法解答。

    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝