数据交换——算法

数据交换

问题描述

问题描述
  编写一个程序,输入两个整数,分别存放在变量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
请按任意键继续. . .

总结

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

发布了60 篇原创文章 · 获赞 5 · 访问量 5068

猜你喜欢

转载自blog.csdn.net/qq_38496329/article/details/104056439