C++程序设计 引用作为函数参数

题目

本题要求实现一个swap函数,swap函数接收3个引用类型的参数,可交换3个整数a,b,c的值。将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值。例如a,b,c的值为1,2,3,则交换后,a,b,c的值为3,1,2,所返回的值为3。
在主函数中声明三个变量 a, b, c并赋值。a的值为1, b为2, c为3
本程序无需键盘输入(10分)
题目内容:

在主函数中声明三个变量 a, b, c并赋值。a的值为1, b为2, c为3;

以a、b、c作为实参,调用swap函数;

最后输出a、b、c三个整数中最大的值,以及三个整数;

变量定义时均应赋初值0。

不得使用C语言中的输入输出函数

函数接口定义:

int swap ( int& x, int& y, int& z); //三个参数均为引用类型

swap()函数接收3个引用类型的参数,可交换3个整数a,b,c的值。将a的值存入b,b的值存入c,c的值存入a。

swap()在交换三个整数的值后,返回x,y,z中最大的数的值

输入格式:

无需输入

输出格式:

用单个空格分隔的四个整数

最大数 a的值 b的值 c的值

输入样例:

输出样例:

3 3 1 2

说明:

第1个3是输入的三个数的最大值,

第二个3是交换后a的值,

1是交换后b的值,

2是交换后c的值

注意1:输出的最后一个整数之后没有空格,也没有换行

注意2:

在主函数中,不要使用

cout << swap(a,b,c) << a << b << c;

这种连续输出的语句,会产生副作用。

要将函数的调用单独作为一条语句,不要与输出语句放在一起。

想问各位大佬们个问题
连续输出的语句有什么副作用?

#include <iostream>
#include <array>

int swap(int&,int&,int&);
int max(int,int,int);
int main()
{
    auto a{0},b{0},c{0};
    a = 1;
    b = 2;
    c = 3;
    int &rea = a,&reb = b,&rec = c;
    auto max_return = swap(rea,reb,rec);
    std::cout << max_return << " "
              << a << " "
              << b << " "
              << c;
    return 0;
}
int swap(int& a,int& b,int& c)
{
    int t,r;
    t = b;
    b = a;
    r = c;
    c = t;
    a = r;
    return max(a,b,c);
}
int max(int a,int b,int c)
{
    auto max_element_self = a;
    std::array<int,3> max_array{a,b,c};
    for(auto i:max_array)
    {
        if(i > max_element_self)
            max_element_self = i;
    }
    return max_element_self;
}
发布了39 篇原创文章 · 获赞 4 · 访问量 5780

猜你喜欢

转载自blog.csdn.net/weixin_45725137/article/details/104085758