一个程序,用同一个函数名对3个数据进行从大到小排序, 数据类型可以是整型、单精度型、双精度型。用重载函数实现 
时间: 2023-05-28 11:04:51 浏览: 18
以下是一个用重载函数实现的程序,可以对整型、单精度型和双精度型数据从大到小排序:
```
#include <iostream>
using namespace std;
void sort(int& a, int& b, int& c) // 重载函数 1,用于排序整型数据
{
int temp;
if (a < b) { temp = a; a = b; b = temp; }
if (a < c) { temp = a; a = c; c = temp; }
if (b < c) { temp = b; b = c; c = temp; }
}
void sort(float& a, float& b, float& c) // 重载函数 2,用于排序单精度型数据
{
float temp;
if (a < b) { temp = a; a = b; b = temp; }
if (a < c) { temp = a; a = c; c = temp; }
if (b < c) { temp = b; b = c; c = temp; }
}
void sort(double& a, double& b, double& c) // 重载函数 3,用于排序双精度型数据
{
double temp;
if (a < b) { temp = a; a = b; b = temp; }
if (a < c) { temp = a; a = c; c = temp; }
if (b < c) { temp = b; b = c; c = temp; }
}
int main()
{
int a1 = 3, b1 = 1, c1 = 2;
sort(a1, b1, c1);
cout << a1 << " " << b1 << " " << c1 << endl; // 输出 3 2 1
float a2 = 3.0f, b2 = 1.0f, c2 = 2.0f;
sort(a2, b2, c2);
cout << a2 << " " << b2 << " " << c2 << endl; // 输出 3 2 1
double a3 = 3.0, b3 = 1.0, c3 = 2.0;
sort(a3, b3, c3);
cout << a3 << " " << b3 << " " << c3 << endl; // 输出 3 2 1
return 0;
}
```
在这个程序中,我们定义了三个重载函数 `sort`,分别用于排序整型、单精度型和双精度型数据。
每个 `sort` 函数都接受三个引用参数,分别用于表示需要排序的数据。在函数内部,我们依次比较三个数据的大小,如果需要交换就进行交换,最终得到从大到小排列的结果。
在 `main` 函数中,我们分别定义了一个整型、一个单精度型和一个双精度型数据,并调用了对应的 `sort` 函数进行排序。最终输出排序后的结果。
此程序可以处理整型、单精度型和双精度型数据,因为我们使用了重载函数,根据传入的参数类型不同,编译器会自动选择合适的函数进行调用。
相关推荐












