P19. 练5.2 阿布拉2

https://ok.hn.cn/p/P19

说明

尼克是一位好学的学生,他经常做实验。有一天他在做实验的时候需要交换一瓶a毫升的红墨水和一瓶b毫升的蓝墨水,但他不会,便向狐狸老师求助,狐狸老师念了一句咒语“阿布拉”帮助了尼克。试编一程序,模拟这一过程。

输入格式

输入a, b。

输出格式

第一行输出交换前两个瓶子的墨水数量。

第二行交换后两个瓶子的墨水数量(单位ml)。

a,b=map(int,input().split())
print(f"a={a} b=[b}")
a,b=b,a
print(f"a={a} b=[b}")

解题思路

定义两个变量存储输入的值,之前讲过引入第三个变量进行值的交换,在这里可以使用减法和加法操作来实现两个数的互换。

int a = 2, b = 3;
a = a + b; // a = 2 + 3 = 5
b = a - b; // b = 5 - 3 = 2
a = a - b; // a = 5 - 2 = 3 

c++ 解法,不使用临时变量

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int x, y;
    cin>>x>>y;
    cout<<"a="<<x<<" b="<<y<<endl;
    x = x + y;
    y = x - y;
    x = x -y;
    cout<<"a="<<x<<" b="<<y<<endl;
    return 0;
}