题目: 给定两个长度相同的int类型的数组,交换两个数组中的元素。
解题思路:创建一个中间变量,利用循环逐个交换两数组中的元素。
< code >
#include <assert.h>
#include <stdio.h>
#include <windows.h>
#define MAXSIZE 5 //两数组长度为5
void ExchangeTwoArray(int* arr1, int* arr2) //交换元素
{
assert(arr1 != NULL);
assert(arr2 != NULL);
int i = 0;
for (i = 0; i < MAXSIZE; i++)
{
if (arr1[i] == arr2[i]) //如果有相同元素那就不用交换
continue;
arr1[i] ^= arr2[i];
arr2[i] ^= arr1[i];
arr1[i] ^= arr2[i];
}
}
void ShowArry(int* arr, int length) //打印数组
{
int i = 0;
while (i < length)
{
printf("%d ", arr[i]);
i++;
}
printf("\n");
}
int main()
{
int arr1[MAXSIZE] = { 1, 3, 5, 7, 9 };
int arr2[MAXSIZE] = { 2, 4, 6, 8, 10 };
ShowArry(arr1, MAXSIZE);
ShowArry(arr2, MAXSIZE);
ExchangeTwoArray(arr1, arr2);
printf("\n");
ShowArry(arr1, MAXSIZE);
ShowArry(arr2, MAXSIZE);
system("pause");
return 0;
}
运行结果: