解题思路:
C语言中的宏允许带有参数,包含形参实参,在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数,无参宏的宏名后不带参数,其定义的一般形式为:

 #define 标识符 字符串; 例如#define m a*b;

其中a*b的值就是m,在主函数中m就是调用a*b;

带参宏定义的一般形式为: 
#define 宏名(形参表) 字符串; 
在字符串中含有各个形参。 
带参宏调用的一般形式为: 

#define y(a,b)  t=a,a=b,b=t;
宏名(实参表),其中a,b就是实参,通过在主函数中输入,然后通过宏定义的预处理,也就是后面的字符串(t=a,a=b,b=t)来运算,在主函数中得到调用。

注意事项:
一般我们在定义宏的时候要根据形参和实参的需要来选择,该题中我们要运用到实参
参考代码:

#include <stdio.h>
#include <math.h>
#define chang(a,b) t=a,a=b,b=t;
int main()
{
    int a,b,t;
    scanf("%d %d",&a,&b);
    chang(a,b);
    printf("%d %d",a,b);
    return 0;
}

如果有不懂的,欢迎评论,我们一起讨论;

另外这里我把宏定义的一些解释链接到这:宏定义

点赞(17)
 

0.0分

75 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 44 条评论

Shinewuski 3年前 回复TA
@月下萤火 太厉害了,我根本看不出来
风流懒羊羊 3年前 回复TA
@月下萤火 666
uq_11477671285 3年前 回复TA
@月下萤火 卧槽,还是大哥厉害,五体投地
uq_11477671285 3年前 回复TA
@kinkin ???你在做什么???
red 3年前 回复TA
@月下萤火 大哥流弊啊,这都给你看出来了,
red 3年前 回复TA
@kinkin 对啊,兄弟你的宏呢
程序圆小周 3年前 回复TA
@kinkin 宏定义呢同学
kinkin 3年前 回复TA
#include<stdio.h>
void change(int b,int c)
{
    int temp;
    temp=b;
    b=c;
    c=temp;
    printf("%d %d",b,c);
}
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    change(a,b);
}
小明来了 3年前 回复TA
#include<stdio.h>
#define  E(a,b) b,a//宏定义:允许使用标识符代表一个字符串
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	printf("%d %d",E(a,b));
	return 0;
}
测试1 3年前 回复TA
@月下萤火 学到了  大哥666