题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开
题目描述
定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。输入
两个数,空格隔开输出
交换后的两个数,空格隔开样例输入
1 2样例输出
2 1来源/分类
C语言题目截图:
思路:
就是在定义宏那里直接写一个函数!
#define change(a,b) {a+=b;b=a-b;a=a-b;}
这个b=a-b 必须放在前面!要不然就会影响后面的计算!
先把两个数加在一起。减去b就会得到原来的a值,将这个数值赋值给b就好啦!
之后,他们的和减去b就是a啦。a已经被改变啦。所以a要放在最后来求出来!
代码:
#include <iostream>using namespace std;
#define change(a,b) {a+=b;b=a-b;a=a-b;}
char a[10000];
int main()
{
int x,y;
cin>>x>>y;
change(x,y);
cout<<x<<" "<<y;
}
代码截图:
运行结果:
OJ结果: