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分)

题目难度: 中等

 

题目内容:

  1. 在主函数中一次读入三个整数的值存入a、b、c中;

  2. 以a、b、c (或者其地址)作为实参,连续调用两个不同swap函数;

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

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

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

函数接口定义:

  1. int swap ( int& x, int& y, int& z);  //三个参数均为引用类型
  2. 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)

测试例说明:

  1. 输入的值超过int范围时,由编译器自动处理,无需在程序中做判别。

  2. 输入的值非int时,由编译器自动处理,无需再程序中做判别。

  3. 要考虑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;
}

网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)的更多相关文章

  1. 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)

    第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

  2. 网易云课堂_C++程序设计入门(上)_第1单元:C++概览_第1单元作业 - 写代码 - 互评 (难度:易)

    第1单元作业 - 写代码 - 互评 (难度:易) 查看帮助 返回   提交作业(截止时间已过) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩 温 ...

  3. 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)

    第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...

  4. 网易云课堂_C++程序设计入门(上)_第4单元:物以类聚 – 对象和类_第4单元作业【3】- 在线编程(难度:难)

    1 在本单元作业[1]和作业[2]的基础上,创建一个MyRectangle类,并在main函数中创建类的实例.(10分) 题目难度: 难 题目内容: Screen类: 与作业[2]要求完全相同. 如果 ...

  5. 网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库

    第2节:一个简单的EGE程序 #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ #ifndef __cplusplus #error You must use C++ ...

  6. 网易云课堂_C++程序设计入门(下)_期末考试_期末考试在线编程题目

    期末考试在线编程题目 返回考试   本次考试题目一共两个,在考试期间可以不限制次数地提交 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间 ...

  7. 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评

    第7单元 - 作业2:编程互评 查看帮助 返回   提交作业(剩余10天) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩   由于在线编程不支持 ...

  8. 网易云课堂_C++程序设计入门(下)_第11单元:工欲善其事必先利其器 - STL简介_第11单元 - 单元作业2:OJ编程 - list 与 deque

    第11单元 - 单元作业2:OJ编程 - list 与 deque 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之 ...

  9. 网易云课堂_C++程序设计入门(下)_第10单元:月映千江未减明 – 模板_第10单元 - 单元作业:OJ编程 - 创建数组类模板

    第10单元 - 单元作业:OJ编程 - 创建数组类模板 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提 ...

随机推荐

  1. MFC DestroyWindow窗口对象和窗口句柄的销毁

    考虑单窗口情况: 假设自己通过new创建了一个窗口对象pWnd,然后pWnd->Create.则销毁窗口的调用次序: 1. 手工调用pWnd->DestroyWindow(): 2. De ...

  2. 将Oracle JDBC驱动库安装到本地仓库

    1.为了添加详细版本信息,先查看当前Oracle数据库版本 select * from v$version; 查询返回如下信息 BANNER ----------------------------- ...

  3. cc150 Chapter 2 | Linked Lists 2.6 Given a circular linked list, implement an algorithm which returns node at the beginning of the loop.

    2.6Given a circular linked list,  implement an algorithm which returns the node at the beginning of ...

  4. mongodb数据库备份恢复

    MongoDB数据文件备份与恢复   备份与恢复数据对于管理任何数据存储系统来说都是非常重要的.   1.冷备份与恢复——创建数据文件的副本(前提是要停止MongoDB服务器),也就是直接copy  ...

  5. apache FtpServer 整合spring部署

    我们在项目中可能会出现这样的需求,使用ftp上传很大的文件后对需要对文件进行相应的逻辑处理,这时我们可以使用apache ftpServer来处理这段逻辑,只要我们做相应的部署和编写我们的逻辑代码,这 ...

  6. Android专项面试训练题(一)

    1.下面不可以退出Activity的是?(D) A.finish() B.抛异常强制退出 C.System.exit(0) D.onStop() 解析: A, finish() 方法就是退出activ ...

  7. html&CSS初学

    <link href="https://fonts.gdgdocs.org/css?family=Lobster" rel="stylesheet" ty ...

  8. Ajax——ajax调用数据总结

    在做人事系统加入批量改动的功能中,须要将前台中的数据传给后台.后台并运行一系列的操作. 通过查询和学习了解到能够通过ajax将值传入到后台,并在后台对数据进行操作. 说的简单点.就是ajax调用后台的 ...

  9. 多线程中的lua同步问题

    最近写paintsnow::start时出现了一个非常麻烦的BUG,程序的Release版本大约每运行十几次就会有一次启动时崩溃(Debug版本还没崩溃过),崩溃点也不固定.经过简单分析之后,确定是线 ...

  10. 2014年1月24日 Oracle 事务导读

    形象举例:  从 A 账户向 B 账户转账 10000 元 步骤: 1. A - 10000 2. B + 10000 事务的作用就是确保这两步无误执行后提交,若有一个执行不成功则失败. 结束事务的5 ...