您的位置:首页 > 其它

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

2015-01-08 15:20 375 查看

题目描述

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

输入

三个整数

输出

由小到大输出成一行,每个数字后面跟一个空格。由指针方式实现。

由小到大输出成一行,每个数字后面跟一个空格。由引用方式实现。

样例输入

2 3 1

样例输出

1 2 3 
1 2 3

提示

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

/* C++代码 */

int main()

{

void sort1(int *,int *,int *);

void sort2(int &,int &,int &);

int n1,n2,n3;

int *p1,*p2,*p3;

int r1,r2,r3;

cin>>n1>>n2>>n3;

r1=n1;

r2=n2;

r3=n3;

p1=&n1;

p2=&n2;

p3=&n3;

sort1(p1,p2,p3);

cout<<n1<<" "<<n2<<" "<<n3<<endl;

sort2(r1,r2,r3);

cout<<r1<<" "<<r2<<" "<<r3<<endl;

return 0;

}



代码如下:

#include <iostream>
using namespace std;
void sort1(int *p1,int *p2,int *p3)
{
    int t;
    if (*p1>*p2)
    {
        t=*p1;
        *p1=*p2;
        *p2=t;
    }
    if (*p2>*p3)
    {
        t=*p2;
        *p2=*p3;
        *p3=t;
    }
    if (*p1>*p2)
    {
        t=*p1;
        *p1=*p2;
        *p2=t;
    }
}

void sort2(int &r1,int &r2,int &r3)
{
    int t;
    if (r1>r2)
    {
        t=r1;
        r1=r2;
        r2=t;
    }
    if (r2>r3)
    {
        t=r2;
        r2=r3;
        r3=t;
    }
    if (r1>r2)
    {
        t=r1;
        r1=r2;
        r2=t;
    }
}

int main()
{
    void sort1(int *,int *,int *);
    void sort2(int &,int &,int &);
    int n1,n2,n3;
    int *p1,*p2,*p3;
    int r1,r2,r3;
    cin>>n1>>n2>>n3;
    r1=n1;
    r2=n2;
    r3=n3;
    p1=&n1;
    p2=&n2;
    p3=&n3;
    sort1(p1,p2,p3);
    cout<<n1<<" "<<n2<<" "<<n3<<endl;
    sort2(r1,r2,r3);
    cout<<r1<<" "<<r2<<" "<<r3<<endl;
    return 0;
}


运行结果:

还是无法上传,都跑到机房来刷题了,,,csdn又要升级么。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: