一。给定两个整形变量的值,将两个值的内容交换 

第一种境界:借用第三个变量

#include<stdio.h>

int main()
{
int a = 10, b = 20, c = 0;
c = a; a = b; b = c;
printf("%d %d", a, b);
system("pause");

}

第二种境界:利用指针,借助第三个变量。

#include<stdio.h>
 int main()
{
int a = 10, b = 50;
int* p1 = &a;
int* p2 = &b;
int t;

t = *p1;   *p1 = *p2;   *p2 = t;

printf("%d %d", a, b);
system("pause");

}

第三种境界:不用第三种变量,利用逻辑运算 异或

#include<stdio.h>
 int main()
{
int a = 10, b = 50;

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

printf("%d %d", a, b);
system("pause");

}

第四种境界:不用利用第三个变量,利用数值之间存在的加减关系,

#include<stdio.h>
 int main()
{
int a = 10, b = 50;
 
a = a + b; b = a - b; a = a - b;

printf("%d %d", a, b);
system("pause");
 }

第五种境界:不用第三个变量,利用数值之间存在的乘除关系

#include<stdio.h>
 int main()
{
int a = 10, b = 50;
 
a = a * b;  b = a / b;  a = a / b;

printf("%d %d", a, b);
system("pause");
}

注:当数值特别大的时候,加减或者乘除可能会发生溢出,第四,五种境界存在弊端。也可以利用局部变量和全局变量,但是方法思路同上。

两个整形变量值交换的五种境界相关推荐

  1. c语言怎么将两个整数变量值交换,C语言如何利用异或进行两个值的交换详解

    C语言异或运算 位运算符家族中,最常用的,某过于异或运算符. 异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例 ...

  2. 【^ 亦或运算符】 实现【变量值交换】和 【数组反转】

    使用 [^ 亦或运算符] 实现[变量值交换]和 [数组反转] 废话不多说,直接上代码,一切尽在注释中!!! 废话不多说,直接上代码,一切尽在注释中!!! package demo;public cla ...

  3. 转:从框架看PHP的五种境界及各自的薪资待遇(仅限于二三线城市,一线除外)...

    在撰写此文前首先必须申明的是本人不鄙视任何一种框架,也无意于挑起PHP框架间的战争,更没有贬低某个框架使用者的用意,本文纯粹个人的看法.你可以认为我无知也好,或者装逼也好,请不要试着在任何情况下,随便 ...

  4. 从框架看PHP的五种境界及各自的薪资待遇

    目录(?)[+] 在撰写此文前首先必须申明的是本人不鄙视任何一种框架,也无意于挑起PHP框架间的战争,更没有贬低某个框架使用者的用意,本文纯粹个人的看法.你可以认为我无知也好,或者装逼也好,请不要试着 ...

  5. C语言最简单的变量交换,【C语言】5种妙招教你轻松搞定变量值交换

    C语言中交换两个变量值的操作经常会用到,也有不少人提问诸如不用临时变量怎么交换两个变量值的问题,今天我们在这里进行一个总结,一共有5种方法,希望大家看完有所收获. 1.临时变量法 方法解释:采用临时变 ...

  6. 常用的变量值交换方法总结(C++实现)

    三种参数传递的实现 #include <iostream> using namespace std;// 交换变量:值传递方法 void swap_val(int a, int b) {i ...

  7. ppt太大怎么压缩变小呢?五种方法灵活运用

    为了更好地压缩PPT文件,还有一些制作PPT时的建议:使用压缩后的图片:在将图片插入到PPT中时,可以将其压缩后再插入,这样可以显著减小文件大小:废弃多余的幻灯片:将不需要的幻灯片删除或隐藏掉,这样可 ...

  8. 五种境界之 二进制转换为十进制(C语言版)

    之前有一个很流行的段子: 英文:"If you do not leave with me , we will die together." 翻译: 四级水平:如果不滚开,我就和你同 ...

  9. php 实现两变量值对换,php两个变量的值交换的方法

    前几天写了一下JS脚本两个变量的值交换的方法,今天有空就写一写php中两个变量的值交换的几种方法,方法很简单大家可以参考一下! php两个变量的值交换的方法 方法1: 定义一个新的变量,用于在变量的值 ...

  10. 前端wxml取后台js变量值_这些鲜为人知的前端冷知识,你都GET了吗?

    背景 最近公司项目不多,比较清闲,划水摸鱼混迹于各大技术博客平台,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来,不由的发出一声感叹! 前端可真是博大精深 于是 ...

最新文章

  1. 什么?欧洲也有个恩智浦杯?
  2. Vue集成Iframe页面
  3. 特斯拉股价暴跌,疯狂烧钱是否真的能够带来高额回报?
  4. 苹果宣布北京时间9月15日凌晨举办发布会后,公司市值再创新高
  5. 赶紧收藏!UI设计师必须知道的命名规范
  6. Java只读服务器,在服务器端,JSP页面如何只读打开本地的word文件并显示在网页上...
  7. python视频处理加速的库_VPF:适用于 Python 的开源视频处理框架,加速视频任务、提高 GPU 利用率...
  8. ESP32+st7789/ili9341运行LVGL例程,依赖ESP-IDF编译lv_port_esp32官方Demo(1)
  9. tl wn322g linux驱动下载,TP-Link TL-WN322G+网卡驱动
  10. 快速学习JasperReport-模板工具Jaspersoft Studio
  11. 服务器装系统提示未找到任何驱动器,win7系统安装时提示找不到任何设备驱动程序的四种解决方法图文教程...
  12. 【量化笔记】动量Momentum相关技术指标以其含义
  13. RabbitMQ 归纳总结
  14. 微信小程序tarBar使用
  15. 【计算机网络】集线器、网桥、交换机、路由器、网关大解析
  16. IPv4地址--公网地址可以有多少
  17. Cisco 防火墙Firwall Failover ActiveActive 双HSRP 实现双ISP完美切换
  18. IO流_IO流概述及分类
  19. input框动态模糊查询,能输入,能选择
  20. 3、JavaWeb中Service层的作用、MyBatis的重要组件、mybatis-config.xml中的别名映射、properties配置、#{}和${}的区别、获取插入数据的主键值

热门文章

  1. java protected类_关于JAVA的protected类型
  2. 显示图片_Pycharm图片独立显示与imshow()无法显示
  3. Pulsar较Kafka的优势
  4. 基于SpringBoot+Mybatis+Thymeleaf的信息管理系统
  5. 认真,respect!
  6. 非线性优化_曲线拟合_Ceres_最小二乘法示例
  7. 自适应对比度增强(ACE)算法原理及实现
  8. 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。
  9. Focal Loss for Dense Object Detection解读
  10. 「洛谷5017」「NOIP2018」摆渡车【DP,经典好题】