30/09/2018, 17:20

Hỏi về lập swap trong c

Có cách nào viết hàm swap mà không cần đến biến tạm k ạ

Minh Hoàng viết 19:35 ngày 30/09/2018

có chứ.

a=a+b;
b=a-b;
a=a-b;

với con trỏ hoặc kiểu phức tạp thì đổi địa chỉ của từng thành phần thành nhị phân (hoặc thập phân) và làm tương tự.

Nhật Cao Khánh viết 19:32 ngày 30/09/2018

Hay đấy bạn

*grab popcorn* viết 19:35 ngày 30/09/2018

Thích cái này nhất (chỉ cho số nguyên)

a^=b^=a^=b;

tương đương

a^=b;
b^=a;
a^=b;
//XOR Swap
X viết 19:27 ngày 30/09/2018

a=a+b;
b=a-b;
a=a-b;

dùng phép nhân và chia cũng dc :

Chung Nguyenvan viết 19:27 ngày 30/09/2018

Làm dạng dùng bit XOR hay hơn, khi dùng phép cộng rất có thể sẽ bị tràn stack nếu phép cộng vượt quá khả năng biểu diễn dữ liệu của kiểu dữ liệu bạn đang dùng

Bài liên quan
0