【C语言】变量数据交换方法

来源:互联网 发布:舆情分析算法 编辑:程序博客网 时间:2024/05/21 09:19

通过不同的方法对变量进行数据交换,下面是4种方法:

前三种的共同有点是他们要比第四种节省空间,比如在嵌入式中内存比较小,会用到前3种方法

在前三种方法中前两种又容易产生溢出,所以都数据有范围要求

第三种用到的是位运算种的异或,先将两个数相互异或,再进行一次异或即可还原,注意还原时候的顺序

#include<stdio.h>void method_1(int x, int y);void method_2(int x, int y);void method_3(int x, int y);void method_3(int x, int y);void main(){    int a, b , z;    printf("请输入两个整数:");    scanf("%d%d",&a,&b);    method_1(a, b);    method_2(a, b);    method_3(a, b);    method_4(a, b);}void method_1(int x, int y){    printf("没有交换:x=%d,y=%d\n", x, y);    x = x + y;    y = x - y;    x = x - y;    printf("交换:x=%d,y=%d\n", x, y);}void method_2(int x,int y){    printf("没有交换:x=%d,y=%d\n", x, y);    x = x * y;    y = x / y;    x = x / y;    printf("交换:x=%d,y=%d\n", x, y);}void method_3(int x, int y){    printf("没有交换:x=%d,y=%d\n", x, y);    x = x ^ y;    y = x ^ y;    x = x ^ y;    printf("交换:x=%d,y=%d\n", x, y);}void method_4(int x, int y){    printf("没有交换:x=%d,y=%d\n", x, y);    int z;    z = x;    x = y;    y = z;    printf("交换:x=%d,y=%d\n", x, y);}

这里写图片描述

原创粉丝点击