目录
1、简单实现
2、不创建中间变量实现
1、简单实现
创建一个中间变量,将两个数组的每个位数的数依次利用这个中间变量交换
#include<stdio.h>
int main()
{
int a[5] = { 0,1,2,3,4 };//定义数组a
int b[5] = { 5,6,7,8,9 };//定义数组b
int t = 0;
int i = 0;
for(i=0;i<5;i++)//定义for循环函数使a数组与b数组交换
{
t = a[i];
a[i] = b[i];
b[i] = t;
printf("%-2d", a[i]);//打印交换后的a数组
}
printf("\n");//打印完a数组后进行换行
for (i = 0; i < 5; i++)
{
printf("%-2d", b[i]);//打印b数组
}
return 0;
}
输出方式为“%-2d”表示按2位的固定位宽输出整型数值。如果不足2位,则在后面补空格(如果是%2d则在前面补空格);超过2位,则按实际位数输出。
2、不创建中间变量实现
利用C语言中的的操作符“ ^ "(按位异或)来实现,先将啊a ^ b赋给a,此时a=a ^ b;再将a ^ b赋给b,此时b=a(后面的a的值) ^ b=a ^ b ^ b=a(初始的a的值);最后将a ^ 赋给a,得a=a ^ b=b。(注意a,b的值在不断变换,注意理清其中的逻辑关系)
#include<stdio.h>
int main()
{
int a[5] = { 0,1,2,3,4 };//定义数组a
int b[5] = { 5,6,7,8,9 };//定义数组b
int i = 0;
for(i=0;i<5;i++)//定义for循环函数使a数组与b数组交换
{
a[i] = a[i] ^ b[i];
b[i] = a[i] ^ b[i];
a[i] = a[i] ^ b[i];
printf("%-2d", a[i]);//打印交换后的a数组
}
printf("\n");//打印完a数组后进行换行
for (i = 0; i < 5; i++)
{
printf("%-2d", b[i]);//打印b数组
}
return 0;
}