当前位置: 代码迷 >> 综合 >> 数据交换——算法
  详细解决方案

数据交换——算法

热度:76   发布时间:2023-12-22 06:41:49.0

数据交换

问题描述

问题描述
  编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。
  输入格式:输入只有一行,包括两个整数。
  输出格式:输出只有一行,也是两个整数,即交换以后的结果。
  要求:主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而swap函数只负责交换变量的值,不能输出交换后的结果。
输入输出样例

样例输入

4 7

样例输出

7 4

问题分析

代码实现

指针方式实现

#include <iostream>
#include <bits/stdc++.h>
using namespace std;  
//通过指针完成 
void swap(int *x,int *y){
    int temp=*x;*x=*y;*y=temp;
}
int x,y;
int main(){
    cin>>x>>y;swap(x,y);cout<<x<<" "<<y;return 0;
}

地址引用方式实现

#include <iostream>
#include <bits/stdc++.h>
using namespace std;  
//地址引用方式
void swap(int &x,int &y){
    int temp=x;x=y;y=temp;
}int x,y; 
int main(){
    cin>>x>>y;swap(x,y);cout<<x<<" "<<y;return 0;
}

运行结果

5 4
4 5
--------------------------------
Process exited after 2.646 seconds with return value 0
请按任意键继续. . .

总结

数据的交换,就是值的交换,本题要求通过自定义函数,不可以在主函数直接交换两个函数的值,那么采用取指针形式或者交换引用地址形式,做到两个变量值的交换与改变