【C语言】交换两个数组内容(数组等大)
2015-09-26 19:15
330 查看
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; }
本文出自 “Vs吕小布” 博客,请务必保留此出处http://survive.blog.51cto.com/10728490/1698449