不借助第三者实现两个变量的交换(java&&C)
1.原理:a^b^b = a
2.实现
java:
package javaPractice;
import java.util.*;
public class Exchange {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
a = a^b;
b = a^b;
a = a^b;
System.out.println("交换后的值为a和b分别为"+a+","+b);
}
}
C语言:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b;
printf("input a ,b:\n");
scanf_s("%d%d",&a,&b);
a = a^b;
b = b^a;
a = a^b;
printf("after swaping \na:%d\nb:%d\n",a,b);
system("pause");
return 0;
}
- 一条语句搞定交换:
a = (a+b)-(b=a);