用变量的引用与重载函数来实现的C++程序题
请朋友帮忙的,谢谢!
题一 :
输入两个整数,将它们按由大到小的顺序输出,要求使用变量的引用。
题二:
编一个程序,用同一个函数名对n个数据进行从小到大排列,数据类型可以是整形、单精度型、双精度型。用重载函数实现。
同学急需要正确答案,期待朋友的回复,先谢谢了哦!
参考答案:问题1的解答:
#include <iostream>
using namespace std;
void outsort(const int& i1, const int& i2)
{
if(i1>i2 || i1==i2)
{
cout<<i1<<","<<i2<<endl;
}
else if(i1<i2)
{
cout<<i2<<","<<i1<<endl;
}
}
int main()
{
int i1,i2;
cout<<"输入两个数:"<<endl;
cin>>i1;
cin>>i2;
cout<<"从大到小的排列为:"<<endl;
outsort(i1,i2);
return 0;
}
问题2:
使用stl的qsort
重载了比较函数
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
using namespace std;
template <typename T>
bool cmp(const T& num1, const T& num2)
{
return num1<num2;
}
int main()
{
vector<int> ivec;
for(int i=0;i<10;i++)
{
ivec.push_back(i/2);
}
ivec.push_back(-10);
for(int i=0;i<ivec.size();i++)
{
cout<<ivec[i]<<" ";
}
sort(ivec.begin(), ivec.end(), cmp<int>);
cout<<"after sort:"<<endl;
for(int i=0;i<ivec.size();i++)
{
cout<<ivec[i]<<" ";
}
}
测试了一下int,float也自己测试了一下
要测试其他的,自己添加一下测试代码就可以了