P0005

前置:无

最低所需知识点:基础语法

此题思路有一个很简单的做法......但是我不讲 如果想看 可以先解决此题再去题解区查收

题目说是交换两个变量的值即可 但其实我可以讲两种方法

1:缓存变量法

两个变量a和b 交换它们的值

如果直接

a=b;
b=a;

那么恭喜你 你WA(答案错误)了

因为在执行a=b的时候a的值已经被更改为b的值了

在此之后执行b=a 因为a的值就是b的值 所以此更改毫无意义b还是b

如果这两行代码可以同时执行 这种思路显然正确

但是C++并没有这个条件

我们发现在执行a=b之后已经没有变量的值是a了 所以b变成谁 它的值都不会是a原本的值

所以我们引入一个变量c

在执行a=b之前 就使c=a 这样就算执行a=b之后也有变量的值为一开始a的值了

但是b不可以再更改为a了 因为此时a的值不是它开始的值 c才是

所以b应该更改为c

方法二:函数法 STL万岁!

调用swap函数

格式如下

swap(a,b);

转换完成!是不是很短 但其实本质思路和方法一并没有什么区别......

讲解完两种做法 你肯定会了 去题解去领取更简单的方法吧~

------------------------------------------------------------题解结束------------------------------------------------------------