码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-01-08 18:06:47      阅读:803      评论:0      收藏:0      [点我收藏+]

标签:c++   iostream   namespace   指针   编程   

题目描述

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

输入

3行字符串

输出

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

样例输入

cde
afg
abc

样例输出

abc
afg
cde
abc
afg
cde

提示

 主函数已给定如下,提交时不需要包含下述主函数


/* C++代码 */

int main()

{

    void sort1(char *,char *,char *);

    void sort2(string &,string &,string &);

    char s1[100],s2[100],s3[100];

    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 0;

}

代码如下:

#include <iostream>
#include <cstring>
using namespace std;
void sort1(char *p1,char *p2,char *p3)
{
    char temp[100];
    if (strcmp(p1,p2)>0)
    {
        strcpy(temp,p1);
        strcpy(p1,p2);
        strcpy(p2,temp);
    }
    if (strcmp(p2,p3)>0)
    {
        strcpy(temp,p2);
        strcpy(p2,p3);
        strcpy(p3,temp);
    }
    if (strcmp(p1,p2)>0)
    {
        strcpy(temp,p1);
        strcpy(p1,p2);
        strcpy(p2,temp);
    }


}

void sort2(string &r1,string &r2,string &r3)
{
    string temp;
    if (r1>r2)
    {
        temp=r1;
        r1=r2;
        r2=temp;
    }

    if (r2>r3)
    {
        temp=r2;
        r2=r3;
        r3=temp;
    }
    if (r1>r2)
    {
        temp=r1;
        r1=r2;
        r2=temp;
    }
}

int main()
{
    void sort1(char *,char *,char *);
    void sort2(string &,string &,string &);
    char s1[100],s2[100],s3[100];
    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 0;
}


对指针和引用真心觉得傻傻搞不明白。。。各种换着改,总算改出来了,而且判断多个字符串大小比较的时候需要注意顺序。一次wrong answer换来的教训,这次判断的顺序没有和上一篇一样,然后就错误了。。。只好改回来。

 

 

 

 

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

标签:c++   iostream   namespace   指针   编程   

原文地址:http://blog.csdn.net/liuchang54/article/details/42526225

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!