第十七周项目2-引用作形参

本文介绍了一个简单的程序设计案例,该程序能够接收三个整数作为输入,并通过两种不同的方法(引用和指针)进行排序输出。这两种方法分别为:通过引用传递进行排序和通过指针传递进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计一个程序,输入3个整数,将其按从大到小的顺序输出,要求
(1)排序功能通过函数实现,3个整数用3个变量,不必定义数组;

(2)写出两个版本的函数,一个采用传地址值的方法,另一个采用引用类型作参数

/*
* Copyright (c) 2014,烟台大学计算机学院
* All right reserved.
* 作者:邵帅
* 文件:demo.cpp
* 完成时间:2014年12月17日
* 版本号:v1.0
*/
#include <iostream>
using namespace std;
void sort(int &x, int &y, int &z);
void sort2(int *x, int *y, int *z);
int main()
{
    int a, b, c;
    int d, e, f;
    cout<<"将使用引用法排序,请输入:";
    cin >> a >> b >> c;
    sort(a, b, c);
    cout << "引用排序后的数字为:" << a << " " << b << " " << c<<endl;
    cout<<"将使用指针法排序,请输入:";
    cin >> d >> e >> f;
    sort2(&d, &e, &f);
    cout << "指针排序后的数字为:" << d << " " << e << " " << f<<endl;
    return 0;
}

void sort(int &x, int &y, int &z)
{
    int temp;
    while (1)
    {
        if (x > y)
        {
            temp = x;
            x = y;
            y = temp;
        }
        if (y > z)
        {
            temp = y;
            y = z;
            z = temp;
        }
        if (x > z)
        {
            temp = x;
            x = z;
            z = temp;
        }
        if (x < y && y < z && x < z)
            break;
    }
}

void sort2(int *x, int *y, int *z)
{
    int temp;
    while (1)
    {
        if (*x > *y)
        {
            temp = *x;
            *x = *y;
            *y = temp;
        }
        if (*y > *z)
        {
            temp = *y;
            *y = *z;
            *z = temp;
        }
        if (*x > *z)
        {
            temp = *x;
            *x = *z;
            *z = temp;
        }
        if (*x < *y && *y < *z && *x < *z)
            break;
    }
}

运行结果:



@ Mayuko

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值