数组中内容(数字,字符,字符串)交换,不引用第三变量

//数组中数字交换
#include<stdio.h>
#include<stdlib.h>
#define n 5
void put(int arr[],int i);
void change(int arr1[],int arr2[]);
void out(int arr[]);
int main()
{
 int arr1[n],arr2[n];
 int i=0;
 //输入
 printf("输入数组1的%d个数:\n",n);
 put(arr1,i);
 printf("输入数组2的%d个数:\n",n);
    put (arr2,i);
 change(arr1,arr2,i);
 printf("交换后结果:\n");
 //输出
 printf("\n数组1:");
 out (arr1);
 printf("\n数组2:");
 out (arr2);
 
 system("pause");
 return 0;
}
void change(int arr1[],int arr2[],int i)
{
 //使用第三变量
 int temp=0;
    for(i=0;i<n;i++)
 {
  temp=arr1[i];
  arr1[i]=arr2[i];
  arr2[i]=temp;
 }

 /*
 //使用异或运算
 for(i=0;i<n;i++)
 {
 arr1[i]=arr1[i]^arr2[i];
 arr2[i]=arr1[i]^arr2[i];
 arr1[i]=arr1[i]^arr2[i];
 }
 */

}
void out(int arr[])
{
 int i=0;
 for(i=0;i<n;i++)
 {
    printf(" %d ",arr[i]);
 }
}
void put (int arr[],int i)
{
    for(i=0;i<n;i++)
 scanf("%d",&arr[i]);
}

//引深
//数组中字符和字符串交换
#include<stdio.h>
#include<stdlib.h>
#define N 5
void put(char arr[],int i);
void change(char arr1[],char arr2[],int i);
void out (char arr[],int i);
int main()
{
 char arr1[N],arr2[N];
 int i=0;
 char arr3[N]={"abc"};
 char arr4[N]={"def"};
 printf("交换前,字符串1:%s\n字符串2:%s\n",arr3,arr4);
 for(i=0;i<N;i++)//字符串交换
 {
 arr3[i]=arr3[i]^arr4[i];
 arr4[i]=arr3[i]^arr4[i];
    arr3[i]=arr3[i]^arr4[i];
 }
 printf("交换后,字符串3:%s\n字符串4:%s\n",arr3,arr4);
 printf("\n**************************\n");
 //输入
 printf("输入数组1的%d个字符:\n",N);
 put(arr1,i);
 
 printf("输入数组2的%d个字符:\n",N);
  put (arr2,i);
 change(arr1,arr2,i);
 printf("交换后字符结果:\n");
 //输出
 printf("\n数组1:");
 out (arr1,i);
 printf("\n数组2:");
 out (arr2,i);
 
 system("pause");
 return 0;
}
void put (char arr[],int i)
{
 //printf("输入数组1中的%d个变量\n",N);
 for(i=0;i<5;i++)
 {
  scanf("%c",&arr[i]);//连续从缓冲区读取所有字符
  //不加getcher()函数读取一个字符,字符应连续输入,不可用空格和回车(因为其也算字符)
  getchar();
 }
}
void change(char arr1[],char arr2[],int i)
{
  for(i=0;i<N;i++)//字符串交换
 {
 arr1[i]=arr1[i]^arr2[i];
 arr2[i]=arr1[i]^arr2[i];
    arr1[i]=arr1[i]^arr2[i];
 }
}
void out (char arr[],int i)
{
 for(i=0;i<N;i++)
 {
    printf(" %c ",arr[i]);
 }
}
发布了43 篇原创文章 · 获赞 18 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章