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]==‘\0‘)
10 return -1;
11 else if(b[i]==‘\0‘)
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

时间: 2024-11-05 13:34:20

ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)的相关文章

OJ刷题之《输入三个字符串,按由小到大的顺序输出》

题目描述 输入三个字符串,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. 输入 3行字符串 输出 按照从小到大输出成3行.由指针方式实现. 按照从小到大输出成3行.由引用方式实现. 样例输入 cde afg abc 样例输出 abc afg cde abc afg cde 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C++代码 */ int main() { void sort1(char *,char *,char *); void so

一些项目——输入三个字符串,按由小到大的顺序输出

Description 输入三个字符串,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. Input 3行字符串 Output 按照从小到大输出成3行.由指针方式实现. 按照从小到大输出成3行.由引用方式实现. Sample Input cde afg abc Sample Output abc afg cde abc afg cde 代码 #include <iostream> #include <cstring> using namesp

OJ刷题之《输入三个整数,按由小到大的顺序输出》

题目描述 输入三个整数,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. 输入 三个整数 输出 由小到大输出成一行,每个数字后面跟一个空格.由指针方式实现. 由小到大输出成一行,每个数字后面跟一个空格.由引用方式实现. 样例输入 2 3 1 样例输出 1 2 3 1 2 3 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C++代码 */ int main() { void sort1(int *,int *,int *); void sort2

【c语言】输入3个数,要求按从小到大顺序输出

// 输入3个数,要求按从小到大顺序输出 #include <stdio.h> int main() { int a,b,c,t; printf("请输入三个数:"); scanf("%d%d%d",&a,&b,&c); if(a > b) { t = a; a = b; b = t; } if(a > c) { t = a; a = c; c = t; } if(b > c) { t = b; b = c; c

将字符串&quot;BASIC&quot;按照相反顺序输出

将字符串"BASIC"按照相反顺序输出. 程序1:用cout.put输出单个字符的成员函数put #include<iostream> using namespace std; int main() { char *p = "BASIC"; int i = 0; for (i = 4; i >= 0; i--) { cout.put(*(p + i)); } cout.put('\n'); system("pause"); re

字符串数组 输入3个字符串,要求按由小到大的字母顺序输出; 输入n个学生的姓名和学号到字符串数组中,在输入一个姓名,如果班级有该生则返回其信息,否则返回本班无此人

输入3个字符串,要求按由小到大的字母顺序输出 如 输入franch england china,输出结果是china england franch 三个数排序输出,比较三个数的大小怎么做? a=18 b= 9 c=30 a>b 交换 a=9 b=18 可不可以用选择法?可不可以用冒泡法?但是这里用不着 例题: string1 string2 string3 temp a=18 b= 9 c=30 b>c? 交换 b中放的是b 和 c 中小的数,c中放的是bc中大的数. 如果a<b,则输出

编程题:用二维字符串数组实现。从键盘输入三个学生姓名,并输出。

#include<stdio.h> #include<string.h> void main() { char name[3][30]; int i; for(i=0;i<3;i++) gets(name[i]);  /*name[i]是一个一维字符数组*/ for(i=0;i<3;i++) printf("%s\n",name[i]); } 编程题:用二维字符串数组实现.从键盘输入三个学生姓名,并输出.,布布扣,bubuko.com

【笔试】15、输入三个整数x,y,z,请把这三个数由小到大输出。

/** * 题目:输入三个整数x,y,z,请把这三个数由小到大输出. * 时间:2015年7月29日11:01:06 * 文件:Lianxi15.java * 作者:cutter_point */ package bishi.zuixin50.t2015729; import java.io.*; public class Lianxi15 { public static void main(String [] args) { String inpath = "source/zuixin50/l

输入3个字符串,按字符串由短到长的顺序输出

输入3个字符串,按字符串由短到长的顺序输出,要求使用指针. #include "stdafx.h" #include<iostream> #include<string.h> #include<stdio.h> using namespace std; char a[80],b[80],c[80]; char *p1,*p2,*p3; //输入三个字符串,三个字符型指针分别三个字符串 int _tmain(int argc, _TCHAR* argv