描述

 

用函数模板的方式实现对不同数据类型的数组中的数据进行输入、从小到大排序和输出。

使用如下主函数测试你的模板

int main()

{

int a1[4];

char a2[5];

double a3[6];

int type;

while (cin >> type)

{

    switch (type)

    {

         case 0: input(a1); sort(a1); output(a1); break;

         case 1: input(a2); sort(a2); output(a2); break;

         case 2: input(a3); sort(a3); output(a3); break;

    }

}

return 0;

}

 

输入

 

输入包含多组测试数据。每组数据为两行,第一行为一个整数type,表示数据类型(0、1、2分别表示int、char、double)。第二行为数组元素。

 

输出

 

对于每一组测试数据,将其排序后在一行内输出,每个元素后跟一个空格。

 

输入样例 1 

0 3 6 1 4
1 A B C B A
2 0 1.1 2.2 1.2 -1.0 3.2

输出样例 1

1 3 4 6 
A A B B C 
-1 0 1.1 1.2 2.2 3.2
#include <iostream>
using namespace std;

template <class T,int N> 
void input(T(&a)[N])//?
{
	int i;
	for(i=0;i<N;i++)
		cin>>a[i];
}
template <class T,int N> 
void sort(T(&a)[N])
{
	int i,j;
	for(j=0;j<N;j++)
		for(i=0;i<N-j-1;i++)
			if(a[i]>a[i+1])
				{
					T c;
					c=a[i];
					a[i]=a[i+1];
					a[i+1]=c;
				}
}
template <class T,int N> 
void output(T(&a)[N])
{
	int i;
	for(i=0;i<N;i++)
		cout<<a[i]<<" ";
  	cout<<endl;
}

 

posted on 2020-02-23 00:49  海月CSDN  阅读(52)  评论(0)    收藏  举报