您的位置:首页 > 其它

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

2017-09-21 23:35 369 查看
//数组中数字交换

#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
,arr2
;

 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
,arr2
;

 int i=0;

 char arr3
={"abc"};

 char arr4
={"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]);

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐