1.加法,异或实现
#include<stdio.h>
int main()
{
int a[10],b[10];
int i=0;
printf("请输入数组a:\n");
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
scanf("%d",&a[i]);
printf("请输入数组b: \n");
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
scanf("%d",&b[i]);
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
a[i]=a[i] + b[i];
b[i]=a[i] - b[i];
a[i]=a[i] - b[i];
}
printf("now,a[10]= ");
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
printf("%d ",a[i]);
printf("\nnow,b[10]= ");
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
实现还可以使用异或“ ^ ”:
a[i]=a[i] ^ b[i];
b[i]=a[i] ^ b[i];
a[i]=a[i] ^ b[i];
2.使用strcpy函数实现:
#include<stdio.h>
int main()
{ char str1[20];
char str2[20];
char str3[20];
puts("请输入str1的字符:\n");
gets(str1);
puts("请输入str2的字符:\n");
gets(str2);
strcpy(str3,str1);
strcpy(str1,str2);
strcpy(str2,str3);
puts("互换后的str1数组为:\n");
puts(str1);
printf("\n");
puts("互换后的str2数组为:\n");
puts(str2);
printf("\n");
return 0;
}
3. 引入第三个数组进行数组各元素的交换
#include<stdio.h>
int main()
{ int i,j,k;
int A[10];
int B[10];
int C[10];
printf("请输入A数组的内容:\n");
for(i=0;i<10;i++)
{scanf("%d",&A[i]);}
printf("请输入B数组的内容:\n");
for(j=0;j<10;j++)
{ scanf("%d",&B[j]);}
for(k=0;k<10;k++) // 引入变量,进行交换
{
C[k]=A[k];
}
for(i=0;i<10;i++)
{
A[i]=B[i];
}
for(j=0;j<10;j++)
{
B[j]=C[j];
}
printf("互换后的A数组为:\n");
for(i=0;i<10;i++)
{printf("%d ",A[i]);}
printf("\n");
printf("互换后的B数组为:\n");
for(j=0;j<10;j++)
{ printf("%d ",B[j]);}
printf("\n");
return 0;
}
4.调用指针函数进行元素的交换
#include<stdio.h>
int main()
{ int i,j,k;
int A[10];
int B[10];
int C[10];
printf("请输入A数组的内容:\n");
for(i=0;i<10;i++)
{scanf("%d",&A[i]);}
printf("请输入B数组的内容:\n");
for(j=0;j<10;j++)
{ scanf("%d",&B[j]);}
for(k=0;k<10;k++)
{ swap(&A[k],&B[k]);
}
printf("互换后的A数组为:\n");
for(i=0;i<10;i++)
{printf("%d ",A[i]);}
printf("\n");
printf("互换后的B数组为:\n");
for(j=0;j<10;j++)
{ printf("%d ",B[j]);}
printf("\n");
return 0;
}
int swap(int *a,int* b)
{ int t;
t=*a;
*a=*b;
*b=t;
}
转载于:https://blog.51cto.com/survive/1698449