C语言19弹--交换数组元素

使用C语言实现交换数组元素

思路:使用头尾下标通过使用三方变量实现交换,注意头尾变量相等时单独进行交换。

1.头交换

c 复制代码
int tmp1 = arr1[left];
arr1[left] = arr2[left];
arr2[left] = tmp1;

2.尾交换

c 复制代码
int tmp2 = arr1[right];
arr1[right] = arr2[right];
arr2[right] = tmp2;

3.相等时

c 复制代码
		if (left == right)
		{
			tmp1 = arr1[left];
			arr1[left] = arr2[right];
			arr2[right] = tmp1;
		}

总代码

c 复制代码
#include <stdio.h>

int main()
{
	int arr1[] = { 0,1,2,3,4 };
	int arr2[] = { 5,6,7,8,9 };
	int i = 0, j = 0;
	int sz = sizeof(arr1) / sizeof(arr1[0]);
	int left = 0, right = sz - 1;

	printf("交换前\n");
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr1[i]);
	}
	printf("\n");

	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr2[i]);
	}
	printf("\n");

	while (left <= right)
	{
		int tmp1 = arr1[left];
		arr1[left] = arr2[left];
		arr2[left] = tmp1;

		int tmp2 = arr1[right];
		arr1[right] = arr2[right];
		arr2[right] = tmp2;

		if (left == right)
		{
			tmp1 = arr1[left];
			arr1[left] = arr2[right];
			arr2[right] = tmp1;
		}
		left++;
		right--;
	}

	printf("交换后\n");
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr1[i]);
	}
	printf("\n");

	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr2[i]);
	}
	printf("\n");

	return 0;
}
相关推荐
点云侠10 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法
兰令水10 小时前
leecodecode【面试150】【2026.6.13打卡-java版本】
java·算法·leetcode
临沂堇10 小时前
刷题日志 | Leetcode Hot 100 哈希
算法·leetcode·哈希算法
.道阻且长.10 小时前
C++ string 操作指南:接口解析
java·c语言·开发语言·c++
蚰蜒螟10 小时前
Java 对象的内存密语:从字段偏移量计算到 Unsafe 访问的完整链路
java·开发语言
2601_9516457810 小时前
如何优雅地使用c语言编写爬虫
c语言·爬虫·网络请求·字符串处理·cspider
玉小格10 小时前
一次关于Python的总结
算法
星辰_mya10 小时前
CountDownLatch深度解析
java·开发语言·后端·架构
伊甸310 小时前
从企业级项目学敏感词过滤:DFA算法与双层缓存实战
java·算法·缓存
laplaya10 小时前
使用 vcpkg 管理 C++ 项目中的依赖
开发语言·c++