数组排序输出(函数模板)
一、问题描述:
对于输入的每一批数,按从小到大排序后输出。
一行输入为一批数,第一个输入为数据类型(1表示整数,2表示字符型数,3表示有一位小数的浮点数,4表示字符串,0表示输入结束),第二个输入为该批数的数量size(0<size<=10),接下来为size个指定类型的数据。
输出将从小到大顺序输出数据。
函数接口定义:sort函数将接受size个数据,将它们从小到大排序后存在a指向的一段连续空间中。
1 2 | template < class T> void sort(T *a, int size); |
裁判测试程序样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <iostream> #include <string> using namespace std; /* 请在这里填写答案 */ template < class T> void display(T* a, int size){ for ( int i=0; i<size-1; i++) cout<<a[i]<< ' ' ; cout<<a[size-1]<<endl; } int main() { const int SIZE=10; int a[SIZE]; char b[SIZE]; double c[SIZE]; string d[SIZE]; int ty, size; cin>>ty; while (ty>0){ cin>>size; switch (ty){ case 1:sort(a,size); display(a,size); break ; case 2:sort(b,size); display(b,size); break ; case 3:sort(c,size); display(c,size); break ; case 4:sort(d,size); display(d,size); break ; } cin>>ty; } return 0; } |
二、代码实现:
1 template <class T> 2 void sort(T *a, int size) 3 { 4 for(int i=0;i<size;i++) 5 { 6 cin>>a[i]; 7 } 8 for(int i=0;i<size-1;i++) 9 { 10 for(int j=i+1;j<size;j++) 11 { 12 if(a[i]>a[j]) 13 { 14 T p; 15 p=a[i]; 16 a[i]=a[j]; 17 a[j]=p; 18 } 19 } 20 } 21 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人