阿伦


私信TA

用户名:874501825

访问量:17982

签 名:

等  级
排  名 1105
经  验 3166
参赛次数 3
文章发表 7
年  龄 0
在职情况 学生
学  校 汕头大学
专  业

  自我简介:

TA的其他文章

解题思路:
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;
}

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

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

 

0.0分

107 人评分

  评论区

#include<stdio.h>
int main()
{
	int a,b,t;
	scanf("%d%d",&a,&b);
	t=a;
	a=b;
	b=t;
	printf("%d %d",a,b);
	return 0;
}
2024-01-25 20:20:29
#include<stdio.h>
#define swap(X,Y) X=X^Y,Y=X^Y,X=X^Y
int main()
{
	int a, b;
	scanf("%d %d", &a,&b);
	printf("%d %d", swap(a, b));
	return 0;
}
2023-11-24 15:21:25
#define Swap(x,y) (t=x,x=y,y=t)
//等价于#define Swap(x,y) t=x,x=y,y=t;
这两种写法都能过是为什么,哪位大佬能解释一下吗?
2023-11-11 00:32:11
参数要带括号吧
2023-07-14 21:17:31
main函数里需要对t进行定义吗?
2023-03-25 10:44:47
我这个为什么报错了,明明一模一样啊
#include <stdio.h>
#include <math.h>
#define ans(a,b) temp=a a=b b=temp;

int main()
{	
	int a,b,temp;
	scanf("%d %d",&a,&b);
	ans(a,b);
	printf("%d %d",a,b);
	return 0;
}
2023-03-15 21:42:57
#include <stdio.h>

#define Change(a ,b) {int temp = *a; *a = *b; *b = temp;}


int main(void)
{
    int data_1 = 0 ,data_2 = 0;
    scanf("%d%d" ,&data_1 ,&data_2);
    Change(&data_1 ,&data_2);
    printf("%d %d\n" ,data_1 ,data_2);
    return 0;
}
2022-06-19 17:06:13
#include<stdio.h>
#define exchange(a, b) printf("%d %d", b, a)

int main()
{
	int a, b;
	scanf("%d %d", &a, &b);
	exchange(a, b);
	return 0;
}
这样呢
2022-05-02 12:23:33