1. 程式人生 > >C語言練習篇-2交換兩個變數的值

C語言練習篇-2交換兩個變數的值

練習:交換兩個變數的值。

方法一:中間變數

#include <stdio.h>
int main()
{
    int a=10;
    int b=4;
    printf("a=%d,b=%d\n",a,b);

    //定義一箇中間變數來完成兩個變數之間的交換
    int temp;
    temp=a;
    a=b;
    b=temp;

    printf("a=%d,b=%d\n",a,b);
    return 0;
}

方法二:巨集定義

#include<stdio.h>

// 定義一個交換兩個數的巨集
#define SWAP(x,y,temp) ((temp) = (x),(x) = (y),(y) = (temp))
int main() { int a=10; int b=4; printf("a=%d,b=%d\n",a,b); int temp; SWAP(a, b, temp); printf("a=%d,b=%d\n",a,b); return 0; }

方法三:算術運算

#include<stdio.h>
int main()
{
    int a=10;
    int b=4;
    printf("a=%d,b=%d\n",a,b);

    a=b-a;//a=-6
    b=b-a;//b=10
    a=a+b;//a
=4 printf("a=%d,b=%d\n",a,b); return 0; }

方法四:位運算

#include<stdio.h>
int main()
{
    int a=10;
    int b=4;
    printf("a=%d,b=%d\n",a,b);

    a = a^b;
    b = b^a;//b = b^a^b = a
    a = a^b;

    printf("a=%d,b=%d\n",a,b);
    return 0;
}