网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)
2024-08-20 08:26:35
1
本题要求实现两个重载的swap函数,每个swap函数都可交换3个整数a,b,c的值。将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值。例如a,b,c的值为1,2,3,则交换后,a,b,c的值为3,1,2,所返回的值为3。(10分)
题目难度: 中等
题目内容:
在主函数中一次读入三个整数的值存入a、b、c中;
以a、b、c (或者其地址)作为实参,连续调用两个不同swap函数;
最后输出a、b、c三个整数中最大的值,以及三个整数;
变量定义时均应赋初值0。
不得使用C语言中的输入输出函数
函数接口定义:
- int swap ( int& x, int& y, int& z); //三个参数均为引用类型
- int swap ( int* x, int* y, int* z); //三个参数均为指针类型
任一个swap()在交换三个整数的值后,返回x,y,z中最大的数的值
每个swap函数都可交换3个整数a,b,c的值。将a的值存入b,b的值存入c,c的值存入a
输入格式:
空格分隔的三个整数
整数1 整数2 整数3
(这三个整数按照输入次序存入a、b、c三个变量)
输出格式:
空格分隔的四个整数
最大数 a变量的值 b变量的值 c变量的值
(注意:a、b、c三个变量中的值是经过swap函数交换过的值)
输入样例:
1 2 3
(备注:程序中,1存入变量a,2存入变量b,3存入变量c)
输出样例:
3 2 3 1
(备注1:最大值3首先输出)
(备注2:第一次调用swap前,a值为1;b值为2;c值为3;第一次调用swap后,a值为3,b值为1,c值为2)
(备注3:第二次调用swap后,a值为3,b值为1,c值为2)
测试例说明:
输入的值超过int范围时,由编译器自动处理,无需在程序中做判别。
输入的值非int时,由编译器自动处理,无需再程序中做判别。
要考虑3个输入的值有两个或者三个相同的情况(是否需要专门写相关代码处理这种情况,你需要思考决定)
时间限制:500ms内存限制:32000kb
#include <iostream> int swap(int& x, int& y, int& z); //三个参数均为引用类型
int swap(int* x, int* y, int* z); //三个参数均为指针类型 int main()
{
int a(0);//变量定义时均应赋初值0
int b(0);
int c(0); std::cin >> a;
std::cin >> b;
std::cin >> c; swap(a, b, c); std::cout << swap(&a, &b, &c); std::cout << " " << a << " " << b << " " << c << std::endl; return 0;
} int swap(int& x, int& y, int& z) //三个参数均为引用类型
{
int max;
int temp;
temp = x;
x = z;
z = y;
y = temp; max = x > ((y > z) ? y : z) ? x : ((y > z) ? y : z); return max;
} int swap(int* x, int* y, int* z) //三个参数均为指针类型
{
int max;
int temp;
temp = *x;
*x = *z;
*z = *y;
*y = temp; max = *x > ((*y > *z) ? *y : *z) ? *x : ((*y > *z) ? *y : *z); return max;
}
最新文章
- Rest webservice 和SOAP webservice
- PL/SQL Developer连接Oracle 11g在Win8 64位系统下乱码
- 20169212《Linux内核原理与分析》第十一周作业
- 重量级Orchard模块发布 - 模块生成工具RaisingStudio.ModuleGenerator
- HashMap Hashtable区别
- 在CentOS 7上安装Node.js的4种方法
- namenode 和datanode无法启动,错误:FSNamesystem initialization failed. datanode.DataNode: Incompatible namespaceIDs
- 《foreach循环示例》
- DelegatingFilterProxy
- 人生的抉择—aspx、ashx、asmx文件处理请求效率比较
- 微信小程序资料集合
- hdu 5100 Chessboard
- Windows Phone 8初学者开发—第16部分:使用应用程序栏
- CSS三角形制作样式
- LINUX 笔记-rm命令
- FFmpeg源代码简单分析:av_find_decoder()和av_find_encoder()
- 【Python】keras使用Lenet5识别mnist
- three.js - 动画 图形统计帧频 dat.GUI
- vue核心之虚拟DOM
- 使用express框架和mongoose在MongoDB查找数据
热门文章
- Combinations 解答
- POJ3268 Silver Cow Party(dijkstra+矩阵转置)
- for、foreach和MoveNext循环效率粗比较
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》 完结篇--源代码放送
- HDU2037 贪心 动归均可+证明
- 那些 Cynthia 教我的事 之 PMSec (一)
- 求一组数字序列的分布情况(java)
- ios ColorLUT滤镜
- [原创] Assistant editor 取消拖拽 binding 的 UI 元素
- react tab选项卡切换