C语言:定义宏swap(x,y)用于交换两个参数x和y的值,并编写程序测试

定义宏swap(x,y)用于交换两个参数x和y的值,并编写程序测试。
输入:第一行为正整数N,表示有N组输入,接下来的N行,每行包含两个待交换的整数。
输出:每组输出,对应输出交换结果。
样例输入
5
1 2
0 0
5 9
25 32
88 89
样例输出
2 1
0 0
9 5
32 25
89 88

思路:交换a和b只要有三种方法:

    引入变量t:t=a;a=b;b=t;

    #include<stdio.h>  
    #define swap(a,b) {int t; t=a; a=b; b=t; }
    int main() 
    {  
    int a,b;
    scanf("%d%d",&a,&b);
    swap(a,b);
    printf("%d %d\n",a,b);
    return 0;
    }
    /*
    输出: 
    1 2
    2 1
    */

    加减法:a=a+b;b=a-b;a=a-b;

    #include<stdio.h>  
    #define swap(a,b) {a=a+b;b=a-b;a=a-b;}
    int main() 
    {  
    int a,b;
    scanf("%d%d",&a,&b);
    swap(a,b);
    printf("%d %d\n",a,b);
    return 0;
    }
    /*
    输出: 
    1 2
    2 1
    */

    位运算:a=a^b;b=a^b;a=a^b;

    #include<stdio.h>  
    #define swap(a,b) {a=a^b;b=a^b;a=a^b;}
    int main() 
    {  
    int a,b;
    scanf("%d%d",&a,&b);
    swap(a,b);
    printf("%d %d\n",a,b);
    return 0;
    }
    /*
    输出: 
    1 2
    2 1
    */
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-04
#include<stdio.h>
#define swap(x,y) {int t; t=x; x=y; y=t; }
int main(){
int i,N;
int x,y;
scanf("%d",&N);
for(i=0; i<N; i++){
scanf("%d%d",&x,&y);
swap(x,y);
printf("%d %d\n",x,y);
}
return 0;
}本回答被提问者和网友采纳