【C语言】交换两个int变量的值,不能使用第三个变量

简介: 交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后 a=5,b=3

题目描述


交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后 a=5,b=3


1.加减法

a=a+b;

b=a -b;(b变为原来的a)

a=a -b;(a变为原来的b)


ps:若a+b的值过大,超过整型的范围时可能会溢出,这个方法不再适用。


#include<stdio.h>
int main()
{
  int a = 3;
  int b = 5;
  printf("a=%d b=%d\n", a, b);
  a = a + b;
  b = a - b;
  a = a - b;
  printf("a=%d b=%d\n", a, b);
  return 0;
}


2.按位异或法

a=a^b; (a^b相当于于一个密码,把它赋给a)

b=a^b; (密码与原来的b的值按位异或得到原来的a)

a=a^b; (密码与原来的a的值按位异或得到原来的b)


ps:按位异或时不存在进位,所以此方法不会溢出。


#include<stdio.h>
int main()
{
  int a = 3;
  int b = 5;
  printf("a=%d b=%d\n", a, b);
  a = a ^ b;
  b = a ^ b;
  a = a ^ b;
  printf("a=%d b=%d\n", a, b);
  return 0;
}
相关文章
|
1月前
|
存储 C语言
C语言变量类型
C语言变量类型
|
1月前
|
存储 数据处理 C语言
C语言类型的变量
C语言类型的变量
18 1
|
1月前
|
存储 C语言
C语言中的指针变量
C语言中的指针变量
8 0
|
1月前
|
C语言
C语言变量定义域
C语言变量定义域
10 0
|
1月前
|
存储 C语言 容器
C语言——变量
C语言——变量
12 0
|
1月前
|
C语言
C语言的选择结构的变量
C语言的选择结构的变量
7 0
|
1月前
|
存储 程序员 C语言
C语言程序变量
C语言程序变量
8 2
|
1月前
|
数据采集 分布式计算 数据处理
Dataphin常见问题之与指定类型int不兼容如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
1月前
|
SQL 流计算 OceanBase
OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
【2月更文挑战第25天】OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
28 3
|
5月前
|
JSON 小程序 JavaScript
小程序根据返回值的int类型渲染不同的状态
小程序根据返回值的int类型渲染不同的状态
68 0