初级菜鸟求助 #define Exchange(a,b,c) {c=a;a=b;b=c;}什么意思

fenghy2004 2010-04-20 04:19:28
/*设计一个程序,要求用带参数的宏交换两个参数的值,在程序中输入两个整数并将它们交换,然后输出交换后的值。*/
#include <stdio.h>
#define Exchange(a,b,c) {c=a;a=b;b=c;}

void main()
{

/*定义三个整数*/
int A1,A2,m;

/*从键盘输入A1,A2的值*/
printf("请输入A1的值:\n");
scanf("%d",&A1);
/*输入A2的值*/
printf("请输入实数A2的值:\n");
scanf("%d",&A2);
/*交换A1、A2的值*/
Exchange(A1,A2,m);
/*打印A1、A2的值*/
printf("A1=%d,A2=%d\n",A1,A2);

}
这是源代码 我知道 宏但Exchange(a,b,c) {c=a;a=b;b=c;} 什么意思
...全文
264 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenghy2004 2010-04-22
  • 打赏
  • 举报
回复
仔细分析了一下 这个是 数学中的 等价交换a=b,b=c,a=c;冒泡法只是一个Temp 临时的一个空间 就像有三个瓶子,a 和b 放有水 然后a和b里面的水交换 通过C杯
fenghy2004 2010-04-22
  • 打赏
  • 举报
回复
谢谢大家了
zuiyuezhou888 2010-04-20
  • 打赏
  • 举报
回复
你可以把 Exchange 理解为函数名 a b c 为参数 {}中为函数过程 宏和函数的用法相同 但他们的工作原理不一样 宏实际上就是 复制 粘贴 所以宏用多了会增加程序生成的代码量
这和冒泡没啥关系 冒泡是排序中的算法 你这只是借助一个临时变量来交换两个变量的值
用户 昵称 2010-04-20
  • 打赏
  • 举报
回复
对于数组排序才会有冒泡的概念,对于两个数来说,谈不上“上浮”,“下沉”。
fenghy2004 2010-04-20
  • 打赏
  • 举报
回复
和冒泡法有什么质的区别? 比如
int a,b;
int temp;
{
temp=a;
a=b;
b=temp;}
和Exchange(a,b,c) {c=a;a=b;b=c;}
谢谢咯
十八道胡同 2010-04-20
  • 打赏
  • 举报
回复
就是利用c来交换a和b
fenghy2004 2010-04-20
  • 打赏
  • 举报
回复
谢谢咯
用户 昵称 2010-04-20
  • 打赏
  • 举报
回复
Exchange(a,b,c) {c=a;a=b;b=c;}

Exchange,宏名称,a,b,c参数

在使用时,参数为A1, A2, m
宏展开就成了
{ c = A1; A1 = A2; A2 = c; }

这是典型的两数互换。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧