定义一个函数模板void sort(T *data,int num)实现冒泡排序,T为待定数据类型,data指向的内存中保存num个T类型的数,在main函数中,从键盘输入n个数,用int型指针变量p1动态申请内存n个整数,用double型指针变量p2动态申请内存n个浮点数,实现从小到大排序并输出。
时间: 2024-03-23 18:37:20 浏览: 53
以下是实现冒泡排序的函数模板:
```cpp
template <typename T>
void sort(T* data, int num) {
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (data[j] > data[j + 1]) {
T temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
}
```
在 `main` 函数中,可以按照以下步骤实现输入、排序和输出:
```cpp
int main() {
int n;
std::cout << "Please enter the number of integers: ";
std::cin >> n;
int* p1 = new int[n];
for (int i = 0; i < n; i++) {
std::cin >> p1[i];
}
sort(p1, n);
std::cout << "Sorted integers: ";
for (int i = 0; i < n; i++) {
std::cout << p1[i] << " ";
}
std::cout << std::endl;
double* p2 = new double[n];
for (int i = 0; i < n; i++) {
std::cin >> p2[i];
}
sort(p2, n);
std::cout << "Sorted doubles: ";
for (int i = 0; i < n; i++) {
std::cout << p2[i] << " ";
}
std::cout << std::endl;
delete[] p1;
delete[] p2;
return 0;
}
```
在这个程序中,首先从键盘读入整数 `n`,然后用 `new` 运算符动态申请两个数组 `p1` 和 `p2`,分别保存 `n` 个整数和 `n` 个浮点数。接下来,按照要求输入这些数,并调用 `sort` 函数对它们进行从小到大排序。最后,输出排序后的结果,并在程序结束前释放动态申请的内存。
阅读全文