用同一个函数名对n(n<=10)个数据进行从小到大排序,数据类型可以是整数、浮点数,用函数重载实现
时间: 2023-05-11 20:06:26 浏览: 109
可以使用函数模板来实现对不同类型数据的排序,具体代码如下:
```
#include <iostream>
#include <algorithm>
using namespace std;
template<typename T>
void sort(T arr[], int n) {
std::sort(arr, arr + n);
}
int main() {
int arr1[] = { 3, 1, 4, 2, 5 };
float arr2[] = { 3.2, 1.5, 4.7, 2.1, 5.3 };
sort(arr1, 5);
sort(arr2, 5);
for (int i = 0; i < 5; i++) {
cout << arr1[i] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++) {
cout << arr2[i] << " ";
}
cout << endl;
return 0;
}
```
这个程序定义了一个函数模板sort,可以对不同类型的数组进行排序。在main函数中,我们分别定义了一个整型数组和一个浮点型数组,并使用sort函数对它们进行排序。最后输出排序后的结果。
相关问题
c++用同一个函数名对n(n<=10)个数据进行从小到大排序,数据类型可以是整数、浮点数,用函数重载实现
可以实现函数重载来对整数和浮点数进行排序,此处提供一个基于 C++ 的示例代码:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
void sort(int arr[], int n) {
sort(arr, arr+n);
}
void sort(double arr[], int n) {
sort(arr, arr+n);
}
int main() {
int intArr[5] = {5, 4, 3, 2, 1};
double doubleArr[5] = {5.5, 4.4, 3.3, 2.2, 1.1};
sort(intArr, 5);
sort(doubleArr, 5);
for (int i=0; i<5; i++) {
cout << intArr[i] << " ";
}
cout << endl;
for (int i=0; i<5; i++) {
cout << doubleArr[i] << " ";
}
cout << endl;
return 0;
}
```
在示例代码中,我们定义了两个同名函数 `void sort()`,一个是处理整型数组的排序,另一个是处理浮点型数组的排序。这两个函数在参数列表上的数据类型不同,因此实现了函数重载。使用 `sort()` 函数可以对整型数组和浮点型数组实现排序操作。
使用c++语言用同一个函数名对n(n<=10)个数据进行从小到大排序,数据类型可以是整数、浮点数,用函数重载实现
可以使用函数重载的方法,编写多个函数名相同但参数不同的函数来实现对不同数据类型的排序,下面是使用C语言实现对n(n<=10)个整数和浮点数从小到大排序的示例代码:
```
#include <stdio.h>
// 对整数数组从小到大排序
void sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 对浮点数数组从小到大排序
void sort(float arr[], int n) {
int i, j;
float temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int i;
int int_arr[5] = {3, 1, 4, 2, 5};
float float_arr[5] = {3.1, 1.2, 4.3, 2.4, 5.5};
// 对整数数组进行排序
sort(int_arr, 5);
printf("sorted int array:");
for (i = 0; i < 5; i++) {
printf("%d ", int_arr[i]);
}
printf("\n");
// 对浮点数数组进行排序
sort(float_arr, 5);
printf("sorted float array:");
for (i = 0; i < 5; i++) {
printf("%.1f ", float_arr[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
sorted int array:1 2 3 4 5
sorted float array:1.2 2.4 3.1 4.3 5.5
```
阅读全文