السلام عليكم ورحمة الله وبركاته ..
تعودتوا يا اخوان من خالد على المواضيع الجميله التي يطرحها ليسلط الضوء على جانب من جوانب السي ++ ... واضن انه تعودتم مني على الالغاز البرمجية ..
فهذا لغز جديد ارجو التركيز والحليل ثم الاجابة ..
لديك الكود التالي ..
#include<iostream.h>
#define SQ(x) (x*x)
int main()
{
int a,b=4;
a=SQ(b+2);
printf("a=%d\n",a);
return 0;
}تم تعريف ماكرو بسيط لتربيع العدد x .. واستدعيناه في الmain ..
ولكن .. هنا المفاجئة .. تربيع العدد 4 يجمع مع 2 ليصبح 6 كما هو معروف 36 .. امااخراج هذا البرنامج فسيكون 14 ..!!!!!!!
هنا السؤال .. من اين جاء الرقم 14 مع العلم ان تربيع ال6 (4+2) هو 36 والكود كما ترونه صحيح .؟؟
ولو اردنا جعل البرنامج يطبع 36 ولكن بنفس الشكل اعلاه .. فكيف نستطيع ذلك .. ؟؟؟
ملاحظة .. الاجوبة ترسل على الخاص رجاءا لا تفسدوا اللغز ..
وكذلك الذي يستطيع الحل يكتب استطعت وارسلت على الخاص والذي لم يفهم يمكنه السؤال ...
تحياتي العطرة وارجو ان يكون لغزا لطيفا ..






