天天看点

[C++笔记]引用作为函数参数

Q1

本题要求实现一个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

本程序无需键盘输入

题目内容:

在主函数中声明三个变量 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;

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

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

[C++笔记]引用作为函数参数
[C++笔记]引用作为函数参数

Q2

本题要求实现一个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、b、c中(使用std::cin);

以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中最大的数的值

输入格式:

空格分隔的三个整数

整数1 整数2 整数3

输出格式:

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

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

输入样例:

1 2 3

输出样例:

3 3 1 2

说明:

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

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

1是交换后b的值,

2是交换后c的值

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

注意2:你在编写时,不能使用类似下面的代码输入信息:

auto a {2};

cin >> a;

上面两行代码用在系统中会导致编译错误。

解决办法是:变量定义的语句中,不能同时出现 auto 和列表初始化方式。要么将上面第一行代码改为 int a {2};要么将其改为 auto a = 2;

注意3:

在主函数中,不要使用

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

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

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

[C++笔记]引用作为函数参数
[C++笔记]引用作为函数参数

(以下均为碎碎念部分)

起初读题没读透,并没有利用swap函数返回三个整数中最大数的值,然而结果是正确的hhhh,运行过后在用例二被扣掉四分,怎么也找不到原因所在。后来才发现这个问题的😢

继续阅读