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. Binary Tree Level Order Traversal 解答

    Question Given a binary tree, return the level order traversal of its nodes' values. (ie, from left ...

  2. Light OJ 1067 Combinations (乘法逆元)

    Description Given n different objects, you want to take k of them. How many ways to can do it? For e ...

  3. kindeditor在sae上传文件修改,适合php

    kindeditor在sae上传文件修改,适合php 当前位置: 首页  > 论坛  > 经验共享 用户登录   新用户注册   主题: kindeditor在sae上传文件修改,适合ph ...

  4. Java Base64编码与图片互转

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  5. Android 一次退出所有activity的方法

    转自:http://bbs.51cto.com/thread-970933-1.html 因为android的API中没有提供一次性退出的接口所以想要在多activity的程序里面一次性退出的话就要费 ...

  6. drupal 7.23 上传中文命名文件bug

    $file->filename = trim(drupal_basename($_FILES['files']['name'][$source]), '.'); //在此行下 添加以下代码即可( ...

  7. iOS FMDB

    FMDB FMDB概述 什么是FMDB * FMDB是iOS平台的SQLite数据库框架 * FMDB以OC的方式封装了SQLite的C语言API FMDB的优点 * 使用起来更加面向对象,省去了很多 ...

  8. struts2 <s:iterator> 遍历方法

    1.MapAction.java import java.util.ArrayList;   import java.util.HashMap;   import java.util.List;    ...

  9. GYP构建系统总结

    GYP,Generate Your Project,一个Google开源的构建系统,最开始用于Chromium项目,现在一些其他的开源项目也开始使用GYP,如v8和node-gyp.不管怎样,这仅仅是 ...

  10. 使用ICE进程间通信时,IP和端口的选择

    使用ICE进程间通信时,IP和端口的选择 服务器在创建时使用的Endpint格式为 tcp  -h IP地址 -p 端口 1.IP地址的选择 如果填某个网卡的地址,则只在这个地址上监听,客户端必须连这 ...