主函数分别输入三个整数、三个双精度浮点型数和三个字符型数并调用模板函数,模板函数负责排序并输出排序后的结果

编写程序,利用函数模板分别对三个整数、三个双精度浮点型数、三个字符型数升序排序。(要求:主函数分别输入三个整数、三个双精度浮点型数和三个字符型数并调用模板函数,模板函数负责排序并输出排序后的结果)

img


#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;
}