【C語言】交換兩個數組內容(數組等大)

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;
}
相關文章
相關標籤/搜索