Mohammed Hendawy نشر 27 أبريل 2023 أرسل تقرير نشر 27 أبريل 2023 (معدل) ازي اخلي return يتجمع تلقاءي مع العدد الزوجي الاقل من 20 هو غلط إني اسال بس انا حاولت ومعرفتش قصدي result تم التعديل في 27 أبريل 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 2 اقتباس
1 Adnane Kadri نشر 27 أبريل 2023 أرسل تقرير نشر 27 أبريل 2023 المشكلة التي تحدث في شيفرتك هو انه لا يتم تجاوز قيمة result وانما يتم طباعة مجموع result و الرقم الذي تتوفر فيه الشروط فقط. جرب تعديل الكود ليصبح: #include <iostream> using namespace std; int main() { int result = 0; int num1, num2, num3, num4; cout << "Please Type 5 Number In A Row\n"; cout << "Only Even Numbers Smaller Than 20 Will Be Counted\n"; cin >> num1 >> num2 >> num3 >> num4; if (num1 < 20 && num1 % 2 == 0) { result += num1; } if (num2 < 20 && num2 % 2 == 0) { result += num2; } if (num3 < 20 && num3 % 2 == 0) { result += num3; } if (num4 < 20 && num4 % 2 == 0) { result += num4; } cout << "The sum of even numbers smaller than 20 is: " << result << endl; return 0; } تطلب الشيفرة من المستخدم إدخال 4 أرقام، ثم تقوم بفحص كل عدد إذا كان عددًا زوجيًا أقل من 20 وإذا كانت الشروط متوفرة فإنه يتم إضافة قيمة العدد إلى المتغير result. وفي الاخير طباعة هذا المجموع. 1 اقتباس
1 Mustafa Suleiman نشر 27 أبريل 2023 أرسل تقرير نشر 27 أبريل 2023 بالإضافة إلى الطريقة التي ذكرها لك عدنان، هناك عدة طرق لتجميع الأرقام الزوجية الأقل من 20 تلقائيًا وتشمل: 1- استخدام حلقة (loop) لتكرار الفحص والإضافة. يمكن استخدام حلقة لتكرار عملية الفحص والإضافة حتى الوصول إلى جميع الأرقام المدخلة. من خلال الحلقة مع جملة if للتحقق مما إذا كان العدد زوجيًا وأقل من 20، وإذا كانت الشروط متوفرة يمكن إضافة العدد إلى المتغير result. 2- استخدام مصفوفة (array) لتخزين الأرقام وإجراء الفحص. يمكن تخزين الأرقام المدخلة في مصفوفة واستخدام حلقة لتحقيق الفحص والإضافة إلى المتغير result. عن طريق الجملة if داخل الحلقة للتحقق مما إذا كان العدد زوجيًا وأقل من 20، وإذا كانت الشروط متوفرة يمكن إضافة العدد إلى المتغير result. 3- الإعتماد على الدالة (function) لتنفيذ الفحص والإضافة. يمكن إنشاء دالة تتلقى مجموعة من الأرقام كمدخلات وتقوم بتنفيذ الفحص والإضافة تلقائيًا. يمكن استخدام الجملة if داخل الدالة للتحقق مما إذا كان العدد زوجيًا وأقل من 20، وإذا كانت الشروط متوفرة يمكن إضافة العدد إلى المتغير result. يمكن استخدام الدالة في أي مكان في الشيفرة التي تريدها لتجميع الأرقام الزوجية. مثال للطريقة الثانية: #include <iostream> using namespace std; int main() { int result = 0; int num; cout << "Please enter a number: "; while (cin >> num && num < 20) { if (num % 2 == 0) { result += num; } cout << "Please enter another number: "; } cout << "The sum of even numbers smaller than 20 is: " << result << endl; return 0; } والكود يطلب من المستخدم إدخال عدد واحد فقط في البداية، ثم استخدام حلقة while لطلب المزيد من الأرقام الزوجية الأقل من 20 مع الاستمرار في إضافة الأرقام إلى المتغير result. ويتوقف البرنامج عندما يتم إدخال رقم غير زوجي أو رقم أكبر من 20. في النهاية، يتم طباعة مجموع الأرقام الزوجية الأقل من 20. 1 اقتباس
1 Kais Hasan نشر 27 أبريل 2023 أرسل تقرير نشر 27 أبريل 2023 بالإضافة إلى ما سبق و ذكره المدربوه هناك طريقة في ال c++ الحديثة تعتمد على توابع مثل accumulate و على استعمال ال containers مثل ال vector (و الذي يمكن تخزين عناصر بشكل ديناميكي ضمنه) كما أنها طريقة سهلة الفهم، و هي كما يلي: #include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<int> v; int n; cin >> n; for (int i = 0 ; i < n ; ++i) { int x; cin >> x; if (x < 20 && (x & 1) == 0) { v.push_back(x); } } int sum = accumulate(v.begin(), v.end(), 0); cout << sum << endl; return 0; } طبعاً هنا في البداية نطلب من المستخدم إدخال عدد الأرقام التي يرغب بإدخالها، ثم نقوم في كل مرة بإدخال الرقم و اختبار فيما إذا كان يحقق الشروط التي نريدها نقوم بإضافته إلى ال vector. هنا يمكن اختبار شرط فيما إذا كان عدد زوجي عن طريق العمليات على البتات، x & 1 تعيد 1 في حال كان العدد فردي و 0 في حال كان زوجي، و هي عملية أسرع من عملية باقي القسمة. و في النهاية نقوم باستدعاء التابع accumulate و هو يأخذ بداية و نهاية ال container التي هنا هي vector و القيمة الأولية و هنا نريدها 0. 1 اقتباس
السؤال
Mohammed Hendawy
ازي اخلي return يتجمع تلقاءي مع العدد الزوجي الاقل من 20
هو غلط إني اسال بس انا حاولت ومعرفتش
قصدي result
تم التعديل في بواسطة Mustafa Suleimanتعديل عنوان السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.