السلام عليكم  

أريد مشاركة اخوتي هنا بأمر كنت أريد أن اضعه على شكل لغز برمجي

لكن لم أجد المجتمع يرحب بالألغاز البرمجية ...

نبدا على بركة الله ساقدم شفرة برمجية .. وارجوا من القارئ أن يخمن بالمخرجات ..

نصيحة لا تتسرع ....

define mi(p) (p*p)

int main() { int j=5;

printf(" i = %d\n",mi(j+0));

return 0;

}

أظن أن الأغلبية ظنت أن المخرجات هي 25 !!!!!!

لكن ماكرو رفض طباعة تخمين الأغلبية وطبع لنا 5 ؟؟؟

يمكنك أن تجرب الكود وترى بأم عينك نتيجة ... 

ارجوا من اخوة قبل متابعة قراءة 

جلوس قليل وتخمين في المخرجات

....

....

....

....

....

أخي هل عصرت مخك جيدا .... أظنك اكتشفت الحل ..

....

....

....

....

سنقوم بشرح الشفرة .... 

الماكرويستقبل وسيط واحد ونحن قمنا بتمرير وسيطين ..

ماكرو سيغلف الوسيطين على انه وسيط واحد يعني (j+0)

لتصبح عملية بهذا شكل j+0*j+0 وبهذا تصبح النتيجة " مخرجات " == j  يعني 5

اظن أنه لم يبقى اي ابهام على تلك شفرة ...

أرجوا من الاخوة الان مساعدتي ممن ذهب عليهم حل للغز

لو أريد طباعة تخمين الاغلبية يعني 25 ماذا على أن اضيف ...

ملاحظة قلت أضيف ولم أقل أغير ... والفرق شاااسع ...

الى موضوع آخر ان شاء الله ..

ســلام عليكم ..