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;
}
相关推荐
神也佑我橙橙8 分钟前
Thrift 简单介绍
算法
simon_skywalker14 分钟前
线性代数及其应用习题答案(中文版)第二章 矩阵代数 2.1 矩阵运算(2)
线性代数·算法·矩阵
REDcker23 分钟前
JS 与 C++ 语言绑定技术详解
开发语言·javascript·c++
June`23 分钟前
C++11新特性全面解析(三):智能指针与死锁
开发语言·c++
认真敲代码的小火龙25 分钟前
【JAVA项目】基于JAVA的医院管理系统
java·开发语言·课程设计
断剑zou天涯28 分钟前
【算法笔记】Manacher算法
java·笔记·算法
monster000w1 小时前
大模型微调过程
人工智能·深度学习·算法·计算机视觉·信息与通信
曼巴UE51 小时前
UE5 C++ 动态多播
java·开发语言
小小晓.1 小时前
Pinely Round 4 (Div. 1 + Div. 2)
c++·算法
SHOJYS1 小时前
学习离线处理 [CSP-J 2022 山东] 部署
数据结构·c++·学习·算法