题目:将数组A中的内容和数组B中的内容进行交换。(数组一样大)
分析:此题与之前做过的“交换两个变量的值”思路相同。但是这里要注意,不管使用哪种方法(创建临时变量还是不创建),如果交换数值写成函数的形式,一定要传地址。
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
//方法一:创建临时变量
void swap(int* x, int* y)
{
int tmp = *x;
*x = *y;
*y = tmp;
}
//方法二:不创建临时变量,采用异或方式
void swap(int* x, int* y)
{
*x = *x^*y;
*y = *x^*y;
*x = *x^*y;
}
int main()
{
int a[] = { 1, 3, 5, 7, 9 };
int b[] = { 2, 4, 6, 8, 10 };
int sz = sizeof(a) / sizeof(a[0]);
for (int i = 0; i < sz; i++)
{
swap(&a[i], &b[i]);//交换数组中的元素
}
printf("交换后数组a的值:");
for (int i = 0; i < 5; i++)
{
printf("%d