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;
}
相关推荐
Sylvia-girl3 小时前
Java——抽象类
java·开发语言
Yana.nice5 小时前
Bash函数详解
开发语言·chrome·bash
今天背单词了吗9806 小时前
算法学习笔记:19.牛顿迭代法——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法·牛顿迭代法
tomorrow.hello7 小时前
Java并发测试工具
java·开发语言·测试工具
晓13137 小时前
JavaScript加强篇——第四章 日期对象与DOM节点(基础)
开发语言·前端·javascript
老胖闲聊7 小时前
Python I/O 库【输入输出】全面详解
开发语言·python
jdlxx_dongfangxing7 小时前
进制转换算法详解及应用
算法
why技术8 小时前
也是出息了,业务代码里面也用上算法了。
java·后端·算法
她说人狗殊途8 小时前
java.net.InetAddress
java·开发语言
天使day8 小时前
Cursor的使用
java·开发语言·ai