PDA

View Full Version : سوال: جابجایی متغییر



zerofantom
سه شنبه 27 مرداد 1388, 19:18 عصر
سلام به همگی
از اینکه به جمع شما وارد شدم باعث افتخاره.
یک سوال دارم اینکه میشه جای دو متغییر را بدون استفاده از متغییر سوم عوض کرد
ممنون

clover
سه شنبه 27 مرداد 1388, 22:21 عصر
سلام دوست عزیز ، خوش آمدید .
بله ، میشه این کارو کرد !
اما اگر منظورتون راه حل این کار هست ، من پیشنهاد می کنم کمی وقت بذارید و خودتون حلش کنید ، مطمئن باشید ضرر نمی کنید .

موفق باشید .

farshad_pickup
سه شنبه 27 مرداد 1388, 23:09 عصر
البته من فکر کنم اگر متغییر ها عددی باشند می شود ولی مثلا اگر دو متغییر از یک ساختار داشته باشید فکر نکنم بشود :متفکر:

zerofantom
سه شنبه 27 مرداد 1388, 23:13 عصر
سلام
ممنون از پاسخهایتان.
ولی من یک بند هم اضافه کنم این دو متغییر از نوع int و در دو نقطه متفاوت از حافظه قرار دارند.

اوبالیت به بو
سه شنبه 27 مرداد 1388, 23:27 عصر
A = A - B
B = B + A
A = B - A

zerofantom
چهارشنبه 28 مرداد 1388, 14:58 عصر
A = A - B
B = B + A
A = B - A

منظورم برای جابجایی محتوای دو مکان متفاون از حافظه است

clover
چهارشنبه 28 مرداد 1388, 16:06 عصر
منظورم برای جابجایی محتوای دو مکان متفاون از حافظه است

خب این کار محتوای دو مکان از حافظه رو عوض میکنه دیگه !

حامد مصافی
چهارشنبه 28 مرداد 1388, 17:08 عصر
A = A - B
B = B + A
A = B - A


بله این یک راه حل است که در عمل و در اغلب اوقات کار می کند. اما خط اول این کد safe نیست و بهتر است از متغیر سوم استفاده شود.

hoax3r
چهارشنبه 28 مرداد 1388, 18:34 عصر
اینم یه راه دیگه:


A ^= B
B ^= A
A ^= B

zerofantom
چهارشنبه 28 مرداد 1388, 20:15 عصر
نه دوستان من مثال برای متغییر عدد فرض گرفتم اگر ما ادرس دو مکان حافظه را داشته باشیم چه کار باید کرد مثلا xو y

farshad_pickup
یک شنبه 01 شهریور 1388, 13:58 عصر
با استفاده از اشاره گر ها میشه این کارو کرد (یعنی مقدار موجود در آدرس ها رو عوض کنید):لبخند: