随笔 - 26  文章 - 0  评论 - 0  阅读 - 2563

数组排序输出(函数模板)

一、问题描述:

对于输入的每一批数,按从小到大排序后输出。

一行输入为一批数,第一个输入为数据类型(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 }
复制代码

 

posted on   轻挼草色  阅读(183)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

点击右上角即可分享
微信分享提示