C语言问题:如何在宏定义时,让宏的参数互换?
来源:百度知道 编辑:UC知道 时间:2024/06/02 21:44:54
定义一个带参数的宏,使两个参数的值互换。如何在预处理命令中做到?
我的程序如下:
#define A(a,b) b=a a=b
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
A(x,y);
printf("%.2lf %.2lf",x,y);
getch();
}
请问错误在哪里?
我自己已经解决了
程序如下:#define A(a,b,k) k=b;b=a;a=k;
main()
{
double x,y,z;
printf("please input x=");
scanf("%lf",&x);
printf("please input y=");
scanf("%lf",&y);
A(x,y,z)
printf("x`=%.1lf y`=%.1lf",x,y);
getch();
}
我的程序如下:
#define A(a,b) b=a a=b
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
A(x,y);
printf("%.2lf %.2lf",x,y);
getch();
}
请问错误在哪里?
我自己已经解决了
程序如下:#define A(a,b,k) k=b;b=a;a=k;
main()
{
double x,y,z;
printf("please input x=");
scanf("%lf",&x);
printf("please input y=");
scanf("%lf",&y);
A(x,y,z)
printf("x`=%.1lf y`=%.1lf",x,y);
getch();
}
宏定义时最好加上()
#define A(a,b) b=a a=b错了,改为
#define A(a,b) a=a^b;b=a^b;a=a^b;
没有分号
#define A(a,b) b=a;a=b;
我记得宏是直接替换的吧
对啊
互换必须利用第三者