Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách hoán đổi hai số không dùng biến tạm trong C


Với phép cộng và trừ, ta có thể hoán đổi hai số từ vị trí bộ nhớ này sang vị trí khác.

Thuật toán

Thuật toán như sau:

BAT DAU

Bước 1: Khai báo 2 biến x và y.
Bước 2: Đọc hai số từ bàn phím.
Bước 3: Hoán đổi số. // Áp dụng phép cộng/trừ để hoán đổi.
    i. x = x + y
    ii. y = x - y
    iii. x = x - y
Bước 4: In giá trị x và y.
KET THUC

Chương trình

Chương trình C sau giải thích hoán đổi hai số không dùng biến thứ ba:

#include <stdio.h>
int main() {
    int x, y;
    printf("nhap x va y:");
    scanf("%d%d", &x, &y); // giả sử x=20, y=30
    x = x + y; // x = 20+30 = 50
    y = x - y; // y = 50-30 = 20
    x = x - y; // x = 50-20 = 30
    printf("Sau hoan doi x=%d va y=%d", x, y);
    return 0;
}

Kết quả

Kết quả như sau:

nhap x va y: 20 30
Sau hoan doi x=30 va y=20

Lưu ý - Có thể hoán đổi dùng phép nhân/chia và XOR bitwise mà không cần biến tạm.

Xét ví dụ khác dùng phép nhân/chia:

Chương trình

#include <stdio.h>
int main() {
    int x, y;
    printf("nhap x va y:");
    scanf("%d%d", &x, &y);
    x = x * y;
    y = x / y;
    x = x / y;
    printf("Sau hoan doi x=%d va y=%d", x, y);
    return 0;
}

Kết quả

Kết quả như sau:

nhap x va y: 120 250
Sau hoan doi x=250 va y=120