计蒜客 难题题库 122 数值交换

看下右边的代码,就知道这是一道交换数值的题目了。

确实,开始看起来,这道题目出得比较2。

但是我相信你在学习c和c++的时候对指针、引用的了解总会有一些误区的。

右边的代码写了5个小函数,目的是交换两个数。

麻烦你去主函数里面,把不能交换的代码注释掉。

比如说,你觉得swap3这个函数不能交换,那么请你注释掉这一行和他下面的那一行代码。直到你觉得剩下的代码都可以实现交换功能并输出哦~

请注意内存泄露、指针和引用的区别等情况~

这道题目简单吧?不要写人任何代码,只需要//就行了哈~

这道题目这么好玩,把样例输入输出写出来就太简单啦~

所以,这道题目的样例不要参考了哦 ~

样例1

输入:

1 2 1 2 1 2 1 2 1 2

输出:

2 1 2 1


using namespace std;

void swap1(int p, int q)
{
	int temp;
	temp = p;
	p = q;
	q = temp;
}

void swap2(int *p, int *q)
{
	int *temp;
	*temp = *p;
	*p = *q;
	*q = *temp;
}

void swap3(int *p, int *q)
{
	int *temp;
	temp = p;
	p = q;
	q = temp;
}

void swap4(int *p, int *q)
{
	int temp;
	temp = *p;
	*p = *q;
	*q = temp;
}

void swap5(int &p, int &q)
{
	int temp;
	temp = p;
	p = q;
	q = temp;
}

int main()
{
	int a1, b1, a2, b2, a3, b3, a4, b4, a5, b5;
	cin>>a1>>b1>>a2>>b2>>a3>>b3>>a4>>b4>>a5>>b5;
//	swap1(a1, b1);
//	cout<<a1<<" "<<b1<<endl;
//	swap2(&a2, &b2);
//	cout<<a2<<" "<<b2<<endl;
//	swap3(&a3, &b3);
//	cout<<a3<<" "<<b3<<endl;
	swap4(&a4, &b4);
	cout<<a4<<" "<<b4<<endl;
	swap5(a5, b5);
	cout<<a5<<" "<<b5<<endl;

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值