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 ạ :smile:

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ự.

2 Likes

Hay đấy bạn :smiley:

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
3 Likes

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

1 Like

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

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?