交换数组:将数组A中的内容和数组B中的内容进行交换

原题目:

将数组A中的内容和数组B中的内容进行交换。(数组一样大)

一、实现代码:

#include <stdio.h>
int main()
{
	int arr1[] = { 1,3,5,7,9 };
	int arr2[] = { 2,4,6,8,10 };
	int tmp = 0;
	int i = 0;
	int sz = sizeof(arr1) / sizeof(arr1[0]);
	for (i = 0; i < sz; i++)
	{
		tmp = arr1[i];
		arr1[i] = arr2[i];
		arr2[i] = tmp;
	}
	return 0;
}

二、代码讲解:

思路一:

因为交换两个变量的时候创建了一个临时变量,所以交换两个数组就创建一个临时数组:

#include <stdio.h>
int main()
{
	int arr1[] = { 1,3,5,7,9 };
	int arr2[] = { 2,4,6,8,10 };
	//交换两个字符串内容,注strcopy是拷贝字符串的
	//创建临时数组:
	int tmp[5] = { 0 };//这里的5是依据arr1和arr2的数组个数写的,有局限性
	tmp = arr1;
	arr1 = arr2;
	arr2 = tmp;
	return 0;
}

注意:上述代码是错误的!

数组名是指针,是首元素的地址,是地址常量,就像门牌号,这种写法只是交换了两个房间的门牌号,并没有交换两个房间里的内容。而要实现的是交换两个房间里的内容。

可以创建一个临时数组,但是不应该对门牌号直接操作,常量地址是不能改的

思路二:

c88d8638ae454c799ed5d22fb87b756f.png

 所以实现代码:

#include <stdio.h>
int main()
{
	int arr1[] = { 1,3,5,7,9 };
	int arr2[] = { 2,4,6,8,10 };

	//创建一个整型变量:
	int tmp = 0;
	int i = 0;
	int sz = sizeof(arr1) / sizeof(arr1[0]);
	//两个数组对应元素的下标是一样的
	for (i = 0; i < sz; i++)
	{
		tmp = arr1[i];
		arr1[i] = arr2[i];
		arr2[i] = tmp;
	}//一次循环交换一对
	return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值