交换2个整型变量的值

1.临时变量法
temp=a;
a=b;
b=temp;

2.加减运算法
a=a+b;
b=a-b;
a=a-b;

3.位运算法
a=a^b;
b=b^a;
a=a^b;
(等价于a^=b^=a^=b;)

4.指针法
void swap(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}

时间: 11-15

交换2个整型变量的值的相关文章

交换两个整型变量的值

#include<stdio.h> #include<stdlib.h> int main() {     int a = 1; int b = 2; int tmp = a; a = b; b = tmp; printf("a = %d b = %d\n",a,b); system("pause"); return 0; } 上面是用创建中间变量的方法交换,下面是不创建中间变量的另一种方法:      a = a+b; b = a-b; a

交换两个整型变量值的方法

方法一: 创建临时变量 #include<stdio.h> #include<stdlib.h> int main() { int a = 1, b = 2; int temp = a;//创建临时变量temp a = b; b = temp; printf("a=%d,b=%d", a, b); system("pause"); return 0; } 方法二: 通过异或 #include<stdio.h> #include&l

交换两个整型变量的数值

#include<stdio.h>void swap(int *p,int *q){ int t;t=*p; *p=*q; *q=t;}main(){ int a=5,b=4,*p,*q;p=&a; q=&b;swap(p,q);printf("a=%d b=%d",a,b);return 0;} 总结: 1,swap是用户定义的函数,它的作业是交换量(a和b)的值,它的形参p和q是指针变量. 2,程序运行时,先执行mian函数 ,输入a和b的值.然后将a和

不用新的变量,交换两个变量的值。

不用新的变量,交换两个变量的值.比如有2个变量a , b ,我们希望交换他们的值. 下面介绍两种不同的解法: 第一种:基于加减法 a = a + b ;   //先让a等于和 b = a - b ;  //和减去原来b的值得到原来a的值,赋值给b a = a - b : //和减去改变后b的值(原来a的值)得到原来b的值,赋值给a 第二种:基于异或运算 a = a ^ b  // 先a异或上b,赋值给a b = a ^ b  // a异或上b,消去b的影响得到原来的a,赋值给b a = a ^

JAVA不用临时变量交换两个变量的值

交换两个变量的值,不适用临时变量 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6 } 7 } 交换两变量的值 加减实现交换 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6

使用指针交换两个整数的值

#include<stdio.h>void change_1(int a, int b);void change_2(int *a, int *b); int main(){ int a = 10; int b = 20; printf("changed before:"); printf("a=%d\tb=%d\n", a, b); change_1(a,b); printf("changed 1 affter:"); printf

通过异或位交换两个整型变量的一个不容易注意的细节

设变量 a = 1, b = 2, 我们要交换两个变量的值, 当用异或交换两个值的时候会有一个小问题 用位运算大概是这个样子的 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 void swap(int& a, int &b) { 6 a ^= b; 7 b ^= a; 8 a ^= b; 9 } 10 11 int main() { 12 int a = 2, b = 3; 13 cout << &qu

PHP不用第三变量交换2个变量的值的解决方法

以前做过一道php面试题是这样的:不使用第三个变量实现交换两个变量的值.一般都是借助第三个中间变量来实现原来两个变量的值交换,但是这道题却要求不能使用中间变量,这对于初学者来说也算是一个难题了.网上找到的几种方法总结如下: 复制代码 代码如下: //字符串版本 结合使用substr,strlen两个方法实现 $a="a";$b="b";echo '交换前 $a:'.$a.',$b:'.$b.'<br />';$a.=$b;$b=substr($a,0,(

通过位异或来交换a,b的值和通过中间变量交换a,b的值

//通过位异或来交换a,b的值 #include <stdio.h> int main(int argc, const char * argv[]) {    int a=20,b=10;    a=a^b;    b=b^a;    a=a^b;        printf("%d",a);    printf("%d\n",b); return 0;} //通过c来交换 #include <stdio.h> int main(int ar