C语言编写函数,输入两个数输出两个数的逆序问题

已知主函数
int main()
{
int x1, y1, t1;
double x2, y2, t2;

scanf("%d %d", &x1, &y1);
int_swap(&x1, &y1);
printf("%d %d\n", x1, y1);

scanf("%d %d", &x1, &y1);
SWAP(t1, x1, y1);
printf("%d %d\n", x1, y1);

scanf("%lf %lf", &x2, &y2);
dbl_swap(&x2, &y2);
printf("%lg %lg\n", x2, y2);

scanf("%lf %lf", &x2, &y2);
SWAP(t2, x2, y2);
printf("%lg %lg\n", x2, y2);
}
答案是
#include<stdio.h>
#define SWAP(c,a,b){a=a+b;b=a-b;a=a-b;}
int *int_swap(int *x1, int *y1)
{
int x;
x=*x1;
*x1=*y1;
*y1=x;
}

int *dbl_swap(double *x2,double *y2)
{
int x;
x=*x2;
*x2=*y2;
*y2=x;
}
宏观变量是什么意思没有看懂啊
样例输入输出

c语音中的宏定义说白了就是字符串的替换,你可以这么来想,只要看到SWAP(c,a,b),
你就可以替换成{a=a+b;b=a-b;a=a-b;},比如SWAP(t2, x2, y2); 你就可以直接用里面的变量替换a,b,c,也就是替换成{x2=x2+y2,y2=x2-y2;x2=x2-y2}
温馨提示:答案为网友推荐,仅供参考
相似回答