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;
这种连续输出的语句,会产生副作用。
要将函数的调用单独作为一条语句,不要与输出语句放在一起。

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;
这种连续输出的语句,会产生副作用。
要将函数的调用单独作为一条语句,不要与输出语句放在一起。
(以下均为碎碎念部分)
起初读题没读透,并没有利用swap函数返回三个整数中最大数的值,然而结果是正确的hhhh,运行过后在用例二被扣掉四分,怎么也找不到原因所在。后来才发现这个问题的😢