请问C语言中:a=a-b;b=a+b;a=b-a能实现两数据的交换吗?为什么?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/17 07:02:47
请问C语言中:a=a-b;b=a+b;a=b-a能实现两数据的交换吗?为什么?
那实现两数交换的方法总共有几种呢?
那实现两数交换的方法总共有几种呢?
如果不借助其它中间变量,比较简单的方法有以下三个,当然假设a+b不会溢出
1.int a=5,b=10;
a=a-b;
b=a+b;
a=b-a;
printf("a=%d,b=%d\n",a,b);
2.a=5,b=10;
a=a+b;
b=a-b;
a=a-b;
printf("a=%d,b=%d\n",a,b);
3.a=5,b=10;
a=a^b;
b=a^b;
a=a^b;
printf("a=%d,b=%d\n",a,b);
就像楼上说的:要是调用函数交换有很多,这里就无法一一列举了
1.int a=5,b=10;
a=a-b;
b=a+b;
a=b-a;
printf("a=%d,b=%d\n",a,b);
2.a=5,b=10;
a=a+b;
b=a-b;
a=a-b;
printf("a=%d,b=%d\n",a,b);
3.a=5,b=10;
a=a^b;
b=a^b;
a=a^b;
printf("a=%d,b=%d\n",a,b);
就像楼上说的:要是调用函数交换有很多,这里就无法一一列举了