编写程序,利用函数模板分别对三个整数、三个双精度浮点型数、三个字符型数升序排序。(要求:主函数分别输入三个整数、三个双精度浮点型数和三个字符型数并调用模板函数,模板函数负责排序并输出排序后的结果)
#include <iostream>
using namespace std;
template<typename T>
//整数或浮点数皆可使用
void bubble_sort(T arr[], int len)
{
int i, j; T temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
int main()
{
int arr[3];
cout<<"请输入三个整数:"<<endl;
cin>>arr[0]>>arr[1]>>arr[2];
int len = (int) sizeof(arr) / sizeof(*arr);
bubble_sort(arr, len);
for (int i = 0; i < len; i++)
cout << arr[i] << ' ';
cout << endl;
double arrf[3];
cout<<"请输入三个浮点数:"<<endl;
cin>>arr[0]>>arr[1]>>arr[2];
len = (int) sizeof(arrf) / sizeof(*arrf);
bubble_sort(arrf, len);
for (int i = 0; i < len; i++)
cout << arrf[i] << ' ';
cout << endl;
char arrc[3];
cout<<"请输入三个字符:"<<endl;
cin>>arr[0]>>arr[1]>>arr[2];
len = (int) sizeof(arrc) / sizeof(*arrc);
bubble_sort(arrc, len);
for (int i = 0; i < len; i++)
cout << arrc[i] << ' ';
return 0;
}