数据交换
问题描述
问题描述
编写一个程序,输入两个整数,分别存放在变量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
请按任意键继续. . .
总结
数据的交换,就是值的交换,本题要求通过自定义函数,不可以在主函数直接交换两个函数的值,那么采用取指针形式或者交换引用地址形式,做到两个变量值的交换与改变