首页 > 其他分享 >daka :p

daka :p

时间:2023-05-13 20:36:09浏览次数:26  
标签:sort daka ty int min display size

6-2 数组排序输出(函数模板) 分数 10 作者 何振峰 单位 福州大学

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

一行输入为一批数,第一个输入为数据类型(1表示整数,2表示字符型数,3表示有一位小数的浮点数,4表示字符串,0表示输入结束),第二个输入为该批数的数量size(0<size<=10),接下来为size个指定类型的数据。

输出将从小到大顺序输出数据。

函数接口定义:sort函数将接受size个数据,将它们从小到大排序后存在a指向的一段连续空间中。

 
template <class T>
void sort(T *a, int size);
 

裁判测试程序样例:

 
#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 3 3 2 1
2 2 a A
3 3 1.5 2.6 2.2
4 2 bca abc
0
 

输出样例:

1 2 3
A a
1.5 2.2 2.6
abc bca

template <class T>
void sort(T *a, int size)
{
    for(int i = 1;i <= size;i++)
    {
        cin>>a[i - 1];
    }
    for(int i = 1; i <= size; i++)
    {
        int min=i - 1;
        for(int j=i+1 - 1; j<size; j++)
        {
            if(a[min]>a[j])
            {
                min=j;
            }
        }
        if(min!=i - 1)
        {
            T temp=a[min];
            a[min]=a[i - 1];
            a[i - 1]=temp;
        }
    }
}

 

标签:sort,daka,ty,int,min,display,size
From: https://www.cnblogs.com/kongxiangzeng/p/17398123.html

相关文章

  • daka :p
     2.设计思路①依次列举出所有0~9的两位相同数字②在第一步的前提下依次列举出0~9的两位相同数字③将第一第二步中的四个数字组成的数进行开根,判断结果是否为整数后输出结果 #include<bits/stdc++.h>usingnamespacestd;intmain(){inti,j,k,temp;for......
  • daka :p
      #include<bits/stdc++.h>#defineN10usingnamespacestd;main(){inti,j,a[N],t,count=0;printf("ÇëΪÊý×éÔªËظ³³õÖµ£º\n");for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=1;i<=N-1;i++)......
  • daka :p
    #incldude<bits/stdc++.h>usinggnamespacestd;intmain(){inti,j,x,flag=0;for(i=23;flag==0;i++){for(j=1,x=i;j<=4&&x>=11;j++){if((x+1)%(j+1)==0)x-=......
  • daka :p
     #include<bits/stdc++.h>usingnamespacestd;intmain(){intm,n,number=0;for(m=0;m<=3;m++){for(n=0;n<=3;n++){if(8-m-n<=6)number++;}}cout<<......
  • daka :p
    复数类Complex有两个数据成员:a和b,分别代表复数的实部和虚部,并有若干构造函数和一个重载-(减号,用于计算两个复数的距离)的成员函数。要求设计一个函数模板template<classT>doubledist(Ta,Tb)对int,float,Complex或者其他类型的数据,返回两个数据的间距。以上类名和函数模......
  • daka :p
     #include<bits/stdc++.h>usingnamespacestd;voidprint(ints[]);intjudge(intc[]);intj=0;intmain(){ intsweet[10]={10,2,8,22,16,4,10,6,14,20}; inti,t[10],l; printf("child12345678910\n"); printf......