zoukankan      html  css  js  c++  java
  • ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)

    1064: 输入三个字符串,按由小到大的顺序输出

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 471  Solved: 188
    [Submit][Status][Web Board]

    Description

    输入三个字符串,按由小到大的顺序输出。分别使用指针和引用方式实现两个排序函数。在主函数中输入和输出数据。

    Input

    3行字符串

    Output

    按照从小到大输出成3行。由指针方式实现。
    按照从小到大输出成3行。由引用方式实现。
     

    Sample Input

    cde
    afg
    abc

    Sample Output

    abc
    afg
    cde
    abc
    afg
    cde
     
      水题,字符串处理
      这道题还是比较有意思的,我自己用写了一个字符串比较模板函数,写了两个排序函数。重又巩固了一下这方面的基础。
      代码
     1 #include <iostream>
     2 #include <string.h>
     3 using namespace std;
     4 template <class T>
     5 int mystrcmp(const T a,const T b)
     6 {
     7     int i;
     8     for(i=0;a[i]||b[i];i++){
     9         if(a[i]=='')
    10             return -1;
    11         else if(b[i]=='')
    12             return 1;
    13         else if(a[i]<b[i])
    14             return -1;
    15         else if(a[i]>b[i])
    16             return 1;
    17     }
    18     return 0;
    19 }
    20  
    21 void sort1(char *a,char *b,char *c)
    22 {
    23     char t[100];
    24     if(mystrcmp(a,b)==1)    //a>b
    25         strcpy(t,a),strcpy(a,b),strcpy(b,t);
    26     if(mystrcmp(b,c)==1)    //b>c
    27         strcpy(t,b),strcpy(b,c),strcpy(c,t);
    28     if(mystrcmp(a,b)==1)    //a>b
    29         strcpy(t,a),strcpy(a,b),strcpy(b,t);
    30 }
    31  
    32 void sort2(string &a,string &b,string &c)
    33 {
    34     string t;
    35     if(mystrcmp(a,b)==1)    //a>b
    36         t=a,a=b,b=t;
    37     if(mystrcmp(b,c)==1)    //b>c
    38         t=b,b=c,c=t;
    39     if(mystrcmp(a,b)==1)    //a>b
    40         t=a,a=b,b=t;
    41 }
    42  
    43 int main()
    44 {
    45     void sort1(char *,char *,char *);
    46     void sort2(string &,string &,string &);
    47     char s1[100],s2[100],s3[100];
    48     char *p1,*p2,*p3;
    49     string r1,r2,r3;
    50     cin>>s1>>s2>>s3;
    51     r1=string(s1);
    52     r2=string(s2);
    53     r3=string(s3);
    54     p1=s1;
    55     p2=s2;
    56     p3=s3;
    57     sort1(p1,p2,p3);
    58     cout<<s1<<endl<<s2<<endl<<s3<<endl;
    59     sort2(r1,r2,r3);
    60     cout<<r1<<endl<<r2<<endl<<r3<<endl;
    61     return 0;
    62 }
    63  
    64 /**************************************************************
    65     Problem: 1064
    66     User: freecode
    67     Language: C++
    68     Result: Accepted
    69     Time:4 ms
    70     Memory:1272 kb
    71 ****************************************************************/

    Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    2019.6.30 Spring注解 bean后置处理器和属性赋值
    2019.6.29 Spring注解-Bean的注册
    2019.6.28 Spring注解
    boost基础环境搭建
    动态规划入门一:钢条切割问题
    《剑指offer》读书笔记
    字符串的全排列
    西山居递归面试题
    常见的数据结构
    832. Flipping an Image
  • 原文地址:https://www.cnblogs.com/yym2013/p/3779437.html
Copyright © 2011-2022 走看看