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

 
  水题,字符串处理
  这道题还是比较有意思的,我自己用写了一个字符串比较模板函数,写了两个排序函数。重又巩固了一下这方面的基础。
  代码
 #include <iostream>
#include <string.h>
using namespace std;
template <class T>
int mystrcmp(const T a,const T b)
{
int i;
for(i=;a[i]||b[i];i++){
if(a[i]=='\0')
return -;
else if(b[i]=='\0')
return ;
else if(a[i]<b[i])
return -;
else if(a[i]>b[i])
return ;
}
return ;
} void sort1(char *a,char *b,char *c)
{
char t[];
if(mystrcmp(a,b)==) //a>b
strcpy(t,a),strcpy(a,b),strcpy(b,t);
if(mystrcmp(b,c)==) //b>c
strcpy(t,b),strcpy(b,c),strcpy(c,t);
if(mystrcmp(a,b)==) //a>b
strcpy(t,a),strcpy(a,b),strcpy(b,t);
} void sort2(string &a,string &b,string &c)
{
string t;
if(mystrcmp(a,b)==) //a>b
t=a,a=b,b=t;
if(mystrcmp(b,c)==) //b>c
t=b,b=c,c=t;
if(mystrcmp(a,b)==) //a>b
t=a,a=b,b=t;
} int main()
{
void sort1(char *,char *,char *);
void sort2(string &,string &,string &);
char s1[],s2[],s3[];
char *p1,*p2,*p3;
string r1,r2,r3;
cin>>s1>>s2>>s3;
r1=string(s1);
r2=string(s2);
r3=string(s3);
p1=s1;
p2=s2;
p3=s3;
sort1(p1,p2,p3);
cout<<s1<<endl<<s2<<endl<<s3<<endl;
sort2(r1,r2,r3);
cout<<r1<<endl<<r2<<endl<<r3<<endl;
return ;
} /**************************************************************
Problem: 1064
User: freecode
Language: C++
Result: Accepted
Time:4 ms
Memory:1272 kb
****************************************************************/

Freecode : www.cnblogs.com/yym2013

上一篇:init.ora, pfile, spfile


下一篇:[原博客] POI系列(4)