برمجة: تبديل عناصر مصفوفتين بدون إستخدام متغير إضافي

في العادة عندما نريد أن نبدل عناصر مصفوفتين نستخدم متغير إضافي نضع فيه القيمةالحالية مؤقتا بينما نسند قيمة العنصر الأول من المصفوفة الأولى مع الأول من المصفوفة الثانية ثم نسترد العنصر الأول من المتغير الإضافى إلى المصفوفة الثانية.

ولكن مذا لو لم نرغب في إستخدام المتغير الإضافي

  يمكن القيام بذلك بالطريقة التالية:

int main()
{
int Array1[]={12,4,8,6,10};
int Array2[]={1,3,4,7,9};
int i;
printf(“Array1 t Array2 n”);
for(i=0;i<5;i++){
//Printing the arrays before swapping
printf(“%d t %d n”,Array1[i],Array2[i]);
}
printf(“n————— n”);
for(i=0;i<5;i++){
//Swapping the elements
Array1[i]=Array1[i]+Array2[i];
Array2[i]=Array1[i]-Array2[i];
Array1[i]=Array1[i]-Array2[i];

//Printing the elements after swapping
printf(“%d t %d n”,Array1[i],Array2[i]);
}
    return 0;
}

و المخرجات كالتالي:

Array1   Array2
12       1
4        3
8        4
6        7
10       9

—————
1        12
3        4
4        8
7        6
9        10

Process returned 0 (0x0)   execution time : 0.021 s
Press any key to continue.

الكود مكتوب بلغة السي و هو نفس الكود للغتي الجافا و السي++ مع تغيير جملة الطباعة بما يناسب كل لغة
0 0 votes
Article Rating
Subscribe
Notify of
guest

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Taha

شكراً عزيزي أيمن ^^

Perfect