四种方法实现两个等大数组之间内容交换

来源:互联网 发布:淘宝开店咨询电话 编辑:程序博客网 时间:2024/05/22 16:49
 方法一://该方法主要用逻辑运算将数组对应的每个元素进行交换,然后用for循环将整个数组元素进行交换#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++)  { A[k]=A[k]^B[k];      //逻辑运算交换各元素的值 ,"^"也可改成"+,_"同样可以实现交换    B[k]=A[k]^B[k];      //例如: A[k]=A[k]+B[k];    A[k]=A[k]^B[k];                         B[k]=A[k]-B[k];    }                                              A[k]=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;}方法二:       //这种方法是利用指针函数进行交换各元素的值,#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;}方法三        //  引入第三个数组进行数组各元素的交换#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;}方法四     //引入第三变量,在利用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;}


本文出自 “零点时光” 博客,请务必保留此出处http://10741764.blog.51cto.com/10731764/1698474

1 0