zoukankan      html  css  js  c++  java
  • 交换变量的三种方法及简单分析

    交换两个变量的思路主要有两种:借助或不借助暂时变量。详细操作时又有下面三种简单算法:

    1、借助暂时变量的算法

    #include <stdio.h>
    
    int main(void)
    {
    	int a, b, t;
    	scanf("%d%d", &a, &b);
    	t = a;
    	a = b;
    	b = t;
    	printf("a = %d, b = %d
    ", a, b);
    	return 0;
    }


    2、不借助暂时变量的算法1(通过加减运算
    #include <stdio.h>
    
    int main(void)
    {
    	int a, b;
    	scanf("%d%d", &a, &b);
    	a = a + b;
    	b = a - b;
    	a = a - b;
    	printf("a = %d, b = %d
    ", a, b);
    	return 0;
    }


    3、不借助暂时变量的算法2(通过异或运算

    #include <stdio.h>
    
    int main(void)
    {
    	int a, b;
    	scanf("%d%d", &a, &b);
    	a = a ^ b;
    	b = b ^ a;
    	a = a ^ b;
    	printf("a = %d, b = %d
    ", a, b);
    	return 0;
    }
    总结:平时使用时,借助暂时变量的算法已经足够好了。不借助暂时变量的算法1和2看起来非常好(少用一个变量),实际上非常少用,由于它的适用范围非常窄:仅仅有定义了加减法或异或的数据类型才干这么做,这两个算法仅仅是用于提高阅读代码的能力。

  • 相关阅读:
    cesium图形上加载图片
    cesium可视化空间数据2
    linux命令之用户和用户组
    YARN应用程序开发和设计流程
    Yarn中几个专用名称
    break、continue、return之间的区别与联系
    kafka的相关操作脚本
    scala函数进阶篇
    scala的基础部分
    视图
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4036934.html
Copyright © 2011-2022 走看看