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;  
}