对于这类问题,我们可以使用两种方法
第一种,通过指针来进行对两个数组的交换
#include<stdio.h>
#include<windows.h>
void swap(int *a, int *b)//定义一个方法交换两个数组内的值
{
int temp =*a;
*a = *b;
*b = temp;
}
int main()
{
int a, b;
int arr1[] = { 1, 2, 3, 4, 5 };
int arr2[] = { 6, 7, 8, 9, 10 };
int k;
for (k = 0; k < 5; k++)//确保两个数组对应的值
{
swap(&arr1[k], &arr2[k]);//使用指针调用方法
}
printf("交换后数组1的值:\n");//输出交换后数组1的值
for (a = 0; a < 5; a++)
{
printf("%d\t", arr1[a]);
}
printf("\n");
printf("交换后数组2的值:\n");//输出交换后数组2的值
for (b = 0; b < 5; b++)
{
printf("%d\t", arr2[b]);
}
printf("\n");
system("pause");
return 0;
}
第二种,建立一个空白数组用作交换两个数组的中间量
#include<stdio.h>
#include<windows.h>
int main()
{
int i,j,a, b,k;
int arr1[5] = { 1, 2, 3, 4, 5 };
int arr2[5] = { 6, 7, 8, 9, 10 };
int arr3[5];//建立一个空数组用作交换媒介
for (k = 0; k < 5; k++)//开始交换两个数组的值
{
arr3[k] = arr1[k];
}
for (a = 0; a < 5; a ++ )
{
arr1[a] = arr2[a];
}
for (b = 0; b < 5; b++)
{
arr2[b] = arr3[b];
}
printf("交换后数组1的值:\n");
for (i = 0; i < 5; i++)
{
printf("%d\t", arr1[i]);//输出交换后数组1的内容
}
printf("\n");
printf("交换后数组2的值:\n");
for (j= 0; j < 5; j++)
{
printf("%d\t", arr2[j]);//输出交换后数组2的值
}
printf("\n");
system("pause");
return 0;
}