不通过中间变量 交换两个数的值

来源:互联网 发布:数码宝贝网络侦探能力 编辑:程序博客网 时间:2024/05/29 05:11

不通过中间变量交换两个数的值可以有效的节省内存空间,具体做法有以下两种。

1、异或算法
a=a^b;
b=a^b;
a=a^b;
原理介绍:从第二行带入算式b=a^b=a^b^b=a;
a=a^b^a^b^b=b;

#include<stdio.h>#include<stdlib.h>int main(){    int a=0;    int b=0;    printf("请输入a,b的值:");    scanf("%d%d",&a,&b);    printf("a=%d b=%d\n",a,b);    printf("交换后的值为:\n");    a=a^b;    b=a^b;    a=a^b;    printf("a=%d b=%d\n",a,b);    return 0;}

2、加减法

#include<stdio.h>#include<stdlib.h>int main(){    int a=0;    int b=0;    printf("请输入a,b的值:");    scanf("%d%d",&a,&b);    printf("a=%d b=%d\n",a,b);    printf("交换后的值为:\n");    a=a+b;    b=a-b;    a=a-b;    printf("a=%d b=%d\n",a,b);    return 0;}
原创粉丝点击