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

题目描述

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

输入

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换来的教训,这次判断的顺序没有和上一篇一样,然后就错误了。。。只好改回来。

 

 

 

 

    原文作者:SAP 皮德憨
    原文地址: https://blog.csdn.net/Liuchang54/article/details/42526225
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞