教学课件3-10交换两个外部变量的值
算法之交换两个变量值
算法三
一、教学目标:
1、知识与技能
掌握两个变量交换的方法;
掌握变量的相关知识
2、过程与方法
根据游戏,讨论如何交换两个变量3、情感、态度与价值观
体会变量的作用和特点
二、教学重点与难点:
重点:变量的相关知识
难点:两个变量的交换。
三、教学资源:
大屏幕电子白板、多媒体课件
四、教学过程:
五、教学反思:
本节课主要采用“任务驱动”教学方法,提出“如何交换两个变量的值”这一问题,由学生分小组讨论解决,并引导学生开阔思路,尝试用多种方法解决,并比较各方法的优劣,大部分学生都能参与其中,收到预期效果。
黑马程序员安卓教程:指针案例-通过函数交换两个变量的值
指针案例-通过函数交换两个变量的值1.#include<stdio.h>2.swap(int *p,int*q){3.//将a、b两个变量的地址的值交换4.int tmp = *p;5.*p = *q;6.*q=tmp;7.}8.main(){9.int a= 1;10.int b= 2;11.//将a、b的地址传递给函数12.swap(&a,&b);13.printf("交换后的值,a=%d,b=%d\n",a,b);14.system("pause");15.}运行的结果为:显然a、b的值成功交换了。
1.5 C 语言的数组1 数组中的所有元素存在一块连续的内存空间中2 数组名就是第一个元素的地址1.5.1案例-数组的基本使用从功能展示界面可以看出,主界面分为上下两个部分,上部分放置一个黑马图标以及一行滚动的文字(跑马灯效果),下部分用GridView(九宫格的形式)放置9个功能图标及功能文字。
主界面的图形化界面如图1-22所示。
1.#include<stdio.h>2.main(){3.int i_arr[]={1,2,3};144.printf("%d\n",i_arr[0]);5.printf("%d\n",i_arr[1]);6.printf("%d\n",i_arr[2]);7.//C 语言不对脚标越界进行检查8.printf("%d\n",i_arr[4]);9.//打印数组的成员的地址10.printf("%d\n",&i_arr[0]);11.printf("%d\n",&i_arr[1]);12.printf("%d\n",&i_arr[2]);13.system("pause");14.}运行结果如下::通过上面的运行结果发现:1)C 语言对脚标越界不进行检查,当脚标越界时照样输出内存中的一个地址值2)数组各个成员在内存中连续的,肯定的int 类型的元素占用了4 个字节1.5.2案例-遍历数组1.#include<stdio.h>2.void printArray(int arr[],int length){3.int i=0;4.//C99 标准中i变量的定义不能写到for()中5.for(;i<length;i++){6. printf("%d\t",arr[i]);7. }8. printf("\n");9.}10.//因为数组的名字就死数组第一个脚标的位置,因为我们可以拿到第一个脚标11.void printArray2(int *p,int length){12. int i=0;13. for(;i<length;i++){14. // 每次将指针移动到下一个位置15. printf("%d\t",*(p+i));1516. }17.18.}19.main(){20.int arr[] ={1,2,3,4,5,6};21.printArray(arr,6);22.printArray2(arr,6);23.system("pause");24.}运行结果如下:3)。
交换两个整数的值c语言函数
交换两个整数的值c语言函数在C语言中,交换两个整数的值是一项基本且重要的操作。
我们通常使用一个中间变量来完成这个操作,也可以使用位运算、加减法等其他方式实现。
下面我们来介绍一种比较通用的方法,使用一个函数来实现交换两个整数的值。
我们先来看看函数的定义:```cvoid swap(int *a, int *b){int temp = *a;*a = *b;*b = temp;}```使用指针作为函数的参数,这样我们就可以通过指针操作来交换两个变量的值。
在函数内部,我们定义一个临时变量temp,用来保存a的值,然后把a赋值成b的值,把b赋值成temp的值。
然后我们来看一个示例:```c#include <stdio.h>void swap(int *a, int *b);int main(){int a = 1;int b = 2;printf("Before swap a=%d, b=%d.\n", a, b);swap(&a, &b);printf("After swap a=%d, b=%d.\n", a, b);return 0;}void swap(int *a, int *b){int temp = *a;*a = *b;*b = temp;}```运行结果如下:```Before swap a=1, b=2.After swap a=2, b=1.```通过该函数,我们成功地交换了两个整数的值。
需要注意的是,当我们把两个变量的地址作为参数传递给函数时,我们必须使用取地址符“&”,否则函数将无法访问这些变量。
总结:通过一个简单的函数,交换两个整数的值非常简单,即使你不是专业的程序员也可以轻松完成该操作。
交换A与B值的四种方法
交换A与B值的四种⽅法
在⽹上看到了这样⼀道⾯试题,“int A=5,int B=2,怎样交换A与B的值”,或许这是⼀道简单到不能再简单的题,但能作为⼀道⾯试题,肯定有其独特之处⼤多数⼈会通过定义第三个变量来中转,即:
⽅法⼀:
int temp;
temp=A;
A=B;
B=temp;
其实除了这种⽅法,还可以不通过中间变量,仅经过简单运算就地交换
例如:利⽤加减法
⽅法⼆:
A=B-A=2-5=-3;
B=B-A=2-(-3)=5;
A=A+B=-3+5=2;
当然,还可以再简化⼀下,这种⽅法我是没有想到
⽅法三:
A=A+B-(B=A)=5+2-5=2 同时B也被替换成了5.
还可以通过异或运算(相同为0,不同为1)来完成
⽅法四:A=A^B; A=A^B; A=A^B; 或者A^=B^=A^=B;
具体过程如下:
A=A^B;
B=A^B=(A^B)^B=A^(B^B)=A^0=A;
A=A^B=(A^B)^A=(A^A)^B=0^B=B;
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。
如何用java实现两个变量值的互换!
如何⽤java实现两个变量值的互换!1、通过第三⽅变量实现两个变量的交换:2、通过已有的两个变量之间的加或减实现:这种⽅法对于两个都是⽆限接进int取值范围,⽽相加超出int取值范围的情况不适⽤。
3. 指针地址操作因为对地址的操作实际上进⾏的是整数运算,⽐如:两个地址相减得到⼀个整数,表⽰两个变量在内存中的储存位置隔了多少个字节;地址和⼀个整数相加即“a+10”表⽰以a为基地址的在a后10个a类数据单元的地址。
所以理论上可以通过和算术算法类似的运算来完成地址的交换,从⽽达到交换变量的⽬的。
即:int *a,*b; //假设*a=new int(10);*b=new int(20); //&a=0x00001000h,&b=0x00001200ha=(int*)(b-a); //&a=0x00000200h,&b=0x00001200hb=(int*)(b-a); //&a=0x00000200h,&b=0x00001000ha=(int*)(b+int(a)); //&a=0x00001200h,&b=0x00001000h通过以上运算a、b的地址真的已经完成了交换,且a指向了原先b指向的值,b指向原先a指向的值了吗?上⾯的代码可以通过编译,但是执⾏结果却令⼈匪夷所思!原因何在?⾸先必须了解,操作系统把内存分为⼏个区域:系统代码/数据区、应⽤程序代码/数据区、堆栈区、全局数据区等等。
在编译源程序时,常量、全局变量等都放⼊全局数据区,局部变量、动态变量则放⼊堆栈区。
这样当算法执⾏到“a=(int*)(b-a)”时,a的值并不是0x00000200h,⽽是要加上变量a所在内存区的基地址,实际的结果是:0x008f0200h,其中0x008f即为基地址,0200即为a在该内存区的位移。
它是由编译器⾃动添加的。
因此导致以后的地址计算均不正确,使得a,b指向所在区的其他内存单元。
变量交换的几种常见方法
变量交换的几种常见方法前几天发现了一个问题:有人告诉我,要进行变量交换,就必须引入第三变量!假设我们要交换a和b变量的值,如果写成int a=5,b=10;a=b;b=a;那么结果就是两个都是10,理由不言而喻。
所以就应该引入第三变量,在a的值被覆盖之前就把a的值保留好。
int a=5,b=10,tmp;tmp=a;a=b;b=tmp;这样,就要引入了第三个变量,然而,我们能不能不引入第三变量来实现变量交换呢?答案自然是肯定的,首先我们可以这样设想,如果a的值被覆盖了,那么就没法知道b应该放什么值了,所以,我们要保留a的值,因此我们可以把a和b的值合起来,放在a里,再把合起来的值分开,分别放到b和a中:int a=5,b=10;a=a+b; //a=15,b=10b=a-b; //a=15,b=5a=a-b; //a=10,b=5但是这样做有一个缺陷,假设它运行在vc6环境中,那么int的大小是4 Bytes,所以int变量所存放的最大值是2^31-1即2147483647,如果我们令a的值为2147483000,b的值为1000000000,那么a和b 相加就越界了。
事实上,从实际的运行统计上看,我们发现要交换的两个变量,是同号的概率很大,而且,他们之间相减,越界的情况也很少,因此我们可以把上面的加减法互换,这样使得程序出错的概率减少:int a=5,b=10;a-=b; //a=-5,b=10b+=a; //a=15,b=5a+=b; //a=10,b=5通过以上运算,a和b中的值就进行了交换。
表面上看起来很简单,但是不容易想到,尤其是在习惯引入第三变量的算法之后。
它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。
具体过程:第一句“a-=b”求出ab两点的距离,并且将其保存在a 中;第二句“b+=a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a+=b”求出b到原点的距离(a到原点距离与ab两点距离之和),并且将其保存在a中。
Scratch编程-算法教学 5.交换两个变量的值 课件
(1)新建一个变量t,作为这个“中转杯”
(2)将变量b中的数值放入变量t 暂存。
(3)将变量啊中的数值放入变量b
(4)将变量t中的数值放入变量a
简单举例
交换两个变量值的过程可以用三角结构来展 示,如图所示,图中的1、2、3表示执行交换 的顺序
图中三条指令的顺序很重要,上面的例子是先将变量b暂存,也可 以先将变量a暂存,把变量a和b的位置交换即可。要注意后面两条 指令的顺序不能乱。代码虽短,却容易错,在做这个小代码时,建 议先画一个三角结构图,并标出顺序,再按顺序编
执行结果 单击绿旗按钮,启动程序。输入a的值为3,b的值为4,从打到小输出a和b的值,如图所示
交换两个变量的值的原理是用一个“中 转”变量进行数据暂存。编写代码时尤 其要注意三条指令的顺序
下 课 啦!
实现步骤 1.新建变量 (1)变量a 和 b:存放输入的两个整数 (2)变量t:用于在交换变量a 和 b过程中暂存数据 2.条件判断
因为输出时a是两数中的大值,所以首先判断a是否小于b,如 果a < b则交换二者,否则直接输出a 和 b,用一个单分支的条件判 断语句即可实现。
从大到小输出两个变量值的流程图
第四课:交换两个变量 的值
学习大纲
CONTENTS
编
程
第一章 学习目标 第二章 编码实现 第三章 每课一练 第四章 总结拓展 第五节 创新作业
学习目标
本节学习一个常用算法----交换两个变量的值。例如,有两个变量,初 始值设为 a = 3,b = 5,交换两者的值后结果变为 a = 5,b = 3,交换 变量值的示意图,如下图所示:
基本原理
1.积木引入 如果直接使用两个赋值指令交换变量值,肯定会出现错误,错误的交换代码如图所示:
交换两个变量的值
交换两个变量的值交换两个变量的值,本质上就是交换两个变量所对内存地址中的数据。
实现该过程有多种算法,如中间变量法,算术运算法,按位异或法等等。
中间变量法这种⽅法较为常见,并且适⽤于所有类型的变量交换。
但是要分配⼀个临时变量的空间。
优点:适⽤性强,适⽤⾯⼴。
缺点:需要另外建⽴⼀个中间变量。
范围:所有变量。
1 temp=a;2 a=b;3 b=temp;交换思想就像是交换两个碗⾥的⽔,⽐较符合我们⽇常⽣活经验。
算术运算法运⽤⼀系列算术运算交换变量,它不⽤创建⼀个空间来储存临时变量。
加减法优点:不⽤临时变量,⽅便理解记忆。
缺点:有数据溢出的风险,只适⽤于基本类型。
范围:基本类型。
1 a=a+b;2 b=a-b;3 a=a-b;例,a=5,b=6。
a=5+6b=(5+6)-6a=(5+6)-5乘除法优点:不⽤临时变量。
缺点:有数据溢出的风险,只适⽤于浮点型数据。
范围:浮点型数据。
1 a=a*b;2 b=a/b;3 a=a/b;例,a=5,b=6。
a=5*6b=(5*6)/6a=(5*6)/5按位异或法该算法利⽤了⼀个数连续与另⼀个数异或两次,就能还原的性质。
优点:不⽤临时变量,⽆溢出风险。
缺点:太复杂,只适⽤于基本类型。
范围:基本类型。
1 a=a^b;2 b=a^b;3 a=a^b;例 a=0101b=0110a=a^b=0011a=a^b=0101。
Python中交换变量的3种方法
Python中交换变量的3种方法2021-10-16使用临时变量交换两个变量值的最简单方法是使用temp变量。
该temp变量用来存储拳头变量的值(temp = a),允许你交换两个变量的值(a = b),然后分配的值temp到所述第二变量。
•••••••••a = 11b = 7temp = aa = bb = tempprint(a) # 7print(b) # 11没有临时变量(元组交换)另一种不使用临时变量交换两个变量值的方法是使用元组打包和序列解包。
元组可以通过多种方式构建,其中之一是使用逗号分隔元组项。
此外,Python 在左侧之前评估赋值的右侧。
因此,通过在语句的右侧用逗号分隔变量,变量被打包成一个元组,并通过在左侧放置相同数量的逗号分隔的目标变量来解包。
这种变量交换和排列的方法可以用于两个以上的变量,只要语句两侧的变量数量相同即可。
•••••••a = 11b = 7a, b = b, aprint(a) # 7print(b) # 11使用算术运算符(仅适用于数字)如果两个变量是数字,则可以使用算术运算符交换它们的值,例如加法和减法 ( +, -) 或乘法和除法 ( *, /)。
这种交换方法是基于计算两个数字的总和,然后使用总和和与总和的差来交换它们。
•••••••••a = 11b = 7a = a +b # a = 18, b = 7b = a - b # a = 18, b = 11a = a - b # a = 7, b = 11print(a) # 7print(b) # 11。
变量互换语句的使用技巧
变量互换语句的使用技巧
变量互换语句的使用技巧包括以下几点:
1. 使用第三个变量:创建一个临时变量,将其中一个变量的值存储到临时变量中,然后将第二个变量的值存储到第一个变量中,最后将临时变量的值存储到第二个变量中。
python
temp = variable1
variable1 = variable2
variable2 = temp
2. 使用加减法:对于数值类型的变量,可以使用加法和减法来互换变量的值。
python
variable1 = variable1 + variable2
variable2 = variable1 - variable2
variable1 = variable1 - variable2
3. 使用异或操作:对于整数类型的变量,可以使用异或操作来互换变量的值。
python
variable1 = variable1 ^ variable2
variable2 = variable1 ^ variable2
variable1 = variable1 ^ variable2
4. 使用tuple解包:可以使用tuple解包来互换变量的值。
python
variable1, variable2 = variable2, variable1
这些技巧都可以用来互换两个变量的值,具体使用哪种技巧可以根据实际情况和编程语言来选择。
《C语言的变量》ppt课件
静态部分变量
部分变量加以static进展声明就是静态部分变量。
【例3-5】经过求1到100的和,阐明静态部分变量的运用方
法。
静态全局变量
全局变量加以static进展声明就是静态全局变量。
.
13
3.3.4 外部变量
在前面讲全局变量时曾经提到,假设需求扩展外部变量的作用域, 使其在程序中的各个源文件和各个函数中都可以运用此全局变量, 就需求用“extern〞关键字来声明全局变量。外部变量声明的普 通格式为:
变量在程序运转过程中,因需求运用才建立,而运用终了就被 删除。具有动态生存期的变量有部分自动变量和存放器变量,具 有动态生存期的变量存储在程序的动态数据区中。
【例3-1】运用for循环延续打印变量值,以阐明全程生存期
和动态生存期的区别。
.
4
3.1.2 变量的作用域
全局作用域 对于具有全局作用域的变量,可以在程序的任何位置访问它们。 部分作用域 变量在复合语句内部或者函数内部声明,无法被复合语句外或
register 数据类型 变量名
【例3-6】经过求20的阶乘,引见存放器变量。
.
15
3.3.6 变量存储类型小结
按照作用域分类如下图:
局部变量
自动变量 静态局部变量 寄存器变量 函数形参
非静态全局变量 (可用 extern 声明)
静态全局变量
.
16
3.3.6 变量存储类型小结
按照生存期分类,如下图:
extern变量名
外部变量的运用主要分为两种情况:
〔1〕在一个源代码文件内声明外部变量。
〔2〕在多个源代码文件间声明外部变量。
.
14
3.3.5 存放器变量
两个变量a,b交换其数值的三种方法
两个变量a,b交换其数值的三种⽅法1, c=a; a=b; b=c;2,n = n + m;//如果n和m的值⾮常⼤,容易超出int范围。
m = n - m;n = n - m;3,n = n ^ m;m = n ^ m;//(n^m)^m;n = n ^ m;//n ^ (n ^ m)注: 上述⽅法在执⾏多次后,第⼆种⽅法效率会⾼⼀些,在只执⾏⼀次或者少次的情况下第⼀,三两种⽅法反⽽效率⾼⼀些。
所以第⼀种⽅法在少量运算的情况下,⽐较好。
在多次的时候第⼆种⽐较好。
1import java.util.Random;23public class Day0424 {5public static void main(String[] args)6 {7 }89static void testEfficiency1()10 {11long l1 = System.currentTimeMillis();12for (int i = 0; i < 10000; i++)13 {14 Random r = new Random(System.currentTimeMillis());15int[] arr = new int[2];16 arr[0] = (int) (Math.random() * 100);17 arr[1] = (int) (Math.random() * 100);18// System.out.println(Arrays.toString(arr));19 arr[0] = arr[0] ^ arr[1];20 arr[1] = arr[0] ^ arr[1];21 arr[0] = arr[0] ^ arr[1];22 }23long l2 = System.currentTimeMillis();24 System.out.println(l2 - l1);25 }26static void testEfficiency2()27 {28long l1 = System.currentTimeMillis();29for (int i = 0; i < 10000; i++)30 {31 Random r = new Random(System.currentTimeMillis());32int[] arr = new int[2];33 arr[0] = (int) (Math.random() * 100);34 arr[1] = (int) (Math.random() * 100);35// System.out.println(Arrays.toString(arr));36int t = arr[0];37 arr[0] = arr[1];38 arr[1] = t;39 }40long l2 = System.currentTimeMillis();41 System.out.println(l2 - l1);42 }4344static void testEfficiency3()45 {46long l1 = System.currentTimeMillis();47for (int i = 0; i < 10000; i++)48 {49 Random r = new Random(System.currentTimeMillis());50int[] arr = new int[2];51 arr[0] = (int) (Math.random() * 100);52 arr[1] = (int) (Math.random() * 100);53// System.out.println(Arrays.toString(arr));54 arr[0] = arr[0] + arr[1];55 arr[1] = arr[0] - arr[1];56 arr[0] = arr[0] - arr[1];57 }58long l2 = System.currentTimeMillis();59 System.out.println(l2 - l1);60 }61 }。
变量交换
变量交换主函数:main(){ int a,b;a=10; b=30;swap(&a,&b);printf("%d %d\n",a,b);}方法一:通过临时变量实现,也是最常见的方法:void swap(int a ,int b){int t;t=a;a=b;b=t;}t是核心内容,作为临时变量进行交换。
这种算法易于理解,但需要一个临时变量。
方法二:算术运算,就是通过普通的+和-运算来实现:void swap(int a ,int b){a=b-a; //a=20;b=30b=b-a; //a=20;b=10a=b+a; //a=30;b=10}证明:把a、b看做数轴上的点,围绕两点间的距离来进行计算。
第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a=b+a”求出b到原点的距离(a 到原点距离与ab两点距离之和),并且将其保存在a中。
完成交换。
此算法与方法一相比,多了三个计算的过程,但是没有借助临时变量。
方法三:指针地址操作,因为对地址的操作实际上进行的是整数运算,比如:两个地址相减得到一个整数,表示两个变量在内存中的储存位置隔了多少个字节;地址和一个整数相加即“a+ 10”表示以a为基地址的在a后10个a类数据单元的地址,所以理论上可以通过和算术算法类似的运算来完成地址的交换,从而达到交换变量的目的:void swap(int a ,int b){if(a<b){a=(int*)(b-a);b=(int*)(b-(int(a)&0x0000ffff));a=(int*)(b+(int(a)&0x0000ffff));}else{b=(int*)(a-b);a=(int*)(a-(int(b)&0x0000ffff));b=(int*)(a+(int(b)&0x0000ffff));}这里采用位运算中的与运算“int(a)&0x0000ffff”,因为地址中高16位为段地址,后16位为位移地址,将它和0x0000ffff 进行与运算后,段地址被屏蔽,只保留位移地址。
c语言位运算交换变量
c语言位运算交换变量
可以使用位运算符来交换两个变量的值。
例如,可以使用异或运算符(^) 来交换两个变量的值。
下面是一个使用位运算交换变量的示例代码:c#include
<stdio.h>int main() { int a = 5; int b = 7; printf("Before swap: a = %d, b = %d\n", a, b); a = a ^ b; b = a ^ b; a = a ^ b; printf("After swap: a = %d, b = %d\n", a, b); return 0;}输出结果:Before swap: a = 5, b = 7After swap: a = 7, b = 5在上面的代码中,我们使用了三次异或运算来交换变量的值。
首先,我们将a 与b 进行异或运算,并将结果保存在a 中(此时,a = a^b)。
然后,我们再次将a 与b 进行异或运算(此时,a = a^b^b = a)并将结果保存在b 中。
最后,我们将a 与b 进行异或运算(此时,a = a^b^a = b)并将结果保存在a 中。
最终,a 和b 的值就被成功交换了。
该方法不仅适用于整型变量,也适用于其他类型的变量。
教学课件 交换两个外部变量的值(共5张PPT)
(10) (11) (12) (13) (14) (15) (16) (17) (18)
int main() {
printf("请输入两个整数:"); scanf("%d%d",&a,&b); printf("交换前:a=%d,b=%d\n",a,b); Swap(); printf("交换后:a=%d,b=%d\n",a,b); return 0; }
数据操作
之
【例】交换两个外部 变量的值
第1页,共5页。
【例】交换两个外部变量的值
【例1】借助中间变量交换两个外部变量的值。
分析:在日常生活中,经常遇到象交换两个杯子中的水的问题。
1
3
1号杯子
2 空杯
2号杯子
第2页,共5页。
【例】交换两个外部变量的值
(1) (2) (3) (4) (5) (6) (7) (8) (9)
#include "stdio.h" int a,b; void Swap() {
int temp; temp=a; a=b; b=temp; }
(10) int main()
(11) {
(12)
printf("请输入两个整数:");
(13)
scanf("%d%d",&a,&b);
(14)
printf("交换前:a=%d,b=%d\n",a,b);
vporiindtfS("w请a输p()入两个整数:");
a=a-b
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例】交换两个外部 变量的值
【例】交换两个外部变量的值 【例1】借助中间变量交换两个外部变量的值。 分析:在日常生活中,经常遇到象交换两个杯子中的水的问题。
1 3
1号杯子
2 空杯
2号杯子
【例】交换两个外部变量的值
(1) (2) (3) (4) (5) (6) (7) (8) (9) } #include "stdio.h" int a,b; void Swap() { int temp; temp=a; a=b; b=temp; (10) int main() (11) { (12) (13) (14) (15) (16) printf("请输入两个整数:");
scanf("%d%d",&a,&b);
printf("交换前:a=%d,b=%d\n",a,b); Swap(); printf("交换后:a=%d,b=%d\n",a,b);
(17)
(18) }
return 0;
03
scanf("%d%d",&a,&b);
printf("交换前:a=%d,b=%d\n",a,b); Swap(); printf("交换后:a=%d,b=%d\n",a,b);
(17)
(18) }
return 0;
03
【例】交换两个外部变量的值 【例2】不借助中间变量交换两个外部变量的值。 a 23 a=a+b b=a-b a=a-b a 68 a 68 a 45 b 45 b 45 b 23 b 23
交换两个外部变量的值
(1) (2) (3) (4) (5) (6) (7) (8) (9) } #include "stdio.h" int a,b; void Swap() { a=a+b; b=a-b; a= a-b; (10) int main() (11) { (12) (13) (14) (15) (16) printf("请输入两个整数:");