ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

题目描述

定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

输入

两个数,空格隔开

输出

交换后的两个数,空格隔开

样例输入

1 2

样例输出

2 1

来源/分类

C语言 

题目截图:
ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。_第1张图片
思路:

看到宏定义,一下子就蒙啦。只好去百度它的含义啦!
就是在定义宏那里直接写一个函数!
#define change(a,b) {a+=b;b=a-b;a=a-b;}
这个b=a-b 必须放在前面!要不然就会影响后面的计算!
先把两个数加在一起。减去b就会得到原来的a值,将这个数值赋值给b就好啦!
之后,他们的和减去b就是a啦。a已经被改变啦。所以a要放在最后来求出来!

代码:

#include 
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<

代码截图:
ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。_第2张图片
运行结果:
ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。_第3张图片
OJ结果:
在这里插入图片描述

你可能感兴趣的:(每日-OJ)