黑马程序员技术交流社区

标题: 两个数的值的交换 [打印本页]

作者: pingfan183    时间: 2014-11-1 23:20
标题: 两个数的值的交换
第一种:int a,b,c

a=b-a
b=b-a
a=a+b
第二种:

int a,b,c

a=b^a
b=b^a
a=a^b

第三种:
int a,b,c,temp;
int temp=a;
a=b;
b=temp;

作者: doudou33420    时间: 2014-11-2 02:43
好吧 支持一下先....
作者: lanwen963    时间: 2014-11-2 06:07
利用指针交换两个变量
#include <stdio.h>

int main()
{
    // 两个变量的起始值a为10 b为11
    int a = 10;
    int b = 11;
    // 定义3个指针
    int *p1, *p2, *temp;
   
    // p1,p2分别存储a,b的地址
    p1 = &a;
    p2 = &b;
   
    // 利用中间指针交换a,b的值
    temp = p1;
   
    p1 = p2;
   
    p2 = temp;
   
    // 输出结果
    printf("交换之后a=%d,b=%d\n", *p1, *p2);
   
    return 0;
}

还有别的方法吗?

作者: 枫叶路过123    时间: 2014-11-2 18:42
用个中间变量,tmp, 把其中的一个赋给中间变量,,或者用数学方法,a=a+b;b=a-b;a=a-b;  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2