zoukankan      html  css  js  c++  java
  • 网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)

    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;
    }
    
  • 相关阅读:
    MATLAB 2019a 安装包及安装教程
    三角形最大周长
    两数的和
    “精致”的数
    总分最高的学生姓名和各科成绩
    列表元素改写
    统计单词个数
    凯撒密码
    Django入门学习--配置路由(urls)
    Django入门学习--熟悉配置信息
  • 原文地址:https://www.cnblogs.com/denggelin/p/5865050.html
Copyright © 2011-2022 走看看