
- بواسطة x32x01 ||
قصة المبرمج أحمد وكود الـ ++C الغامض 
الساعة 2 صباحًا... وأحمد شغال على مشروع تخرجه لإدارة درجات الطلبة.كل شيء تمام لحد ما بدأ البرنامج يطلع نتائج غريبة جدًا

الكود (فيه أخطاء
)
C++:
#include <iostream>
using namespace std;
int main() {
int grade;
int sum = 0;
int count = 0;
int max = 0;
int min = 100;
cout << "Enter grades (enter -1 to stop): ";
while (grade != -1) {
cin >> grade;
sum += grade;
count++;
if (grade > max) max = grade;
if (grade < min) min = grade;
}
float average = sum / count;
cout << "Average: " << average << endl;
cout << "Max: " << max << endl;
cout << "Min: " << min << endl;
return 0;
}

اتأكد دايمًا إنك بتراجع كل شرط وكل متغير قبل التشغيل.
شاركنا إجابتك في التعليقات

وأول 3 إجابات صحيحة ليهم عضوية VIP شهر مجاني!

التعديل الأخير:

- بواسطة Chemseddine ||
C++:
using namespace std;
int main() {
float grade;
float sum = 0;
int count = 0;
float max = 0;
float min = 100;
cout << "Enter grades (enter -1 to stop): ";
while (grade != -1) {
cin >> grade;
while ((grade < 0) (grade > 100)){
cin >> grade;
}
sum += grade;
count++;
if (grade > max) max = grade;
if (grade < min) min = grade;
}
float average = sum / count;
cout << "Average: " << average << endl;
cout << "Max: " << max << endl;
cout << "Min: " << min << endl;
return 0;
}

- بواسطة x32x01 ||
الأخطاء الموجودة في الكود
- المتغير grade غير مهيّأ قبل الاستخدام
→ الشرط while (grade != -1) بيتفحص قيمة غير معروفة! - يتم جمع قيمة -1 في المجموع
→ لازم نستبعدها قبل إضافة الدرجة. - القسمة بين عددين صحيحين
→ لازم نحول إلى float عشان الناتج يكون عشري.
الكود الصحيح
C++:
#include <iostream>
using namespace std;
int main() {
int grade = 0;
int sum = 0;
int count = 0;
int max = 0;
int min = 100;
cout << "Enter grades (enter -1 to stop): ";
while (true) {
cin >> grade;
if (grade == -1) break; // خروج عند -1 فقط
if (grade < 0 || grade > 100) continue; // تجاهل الدرجات غير الصحيحة
sum += grade;
count++;
if (grade > max) max = grade;
if (grade < min) min = grade;
}
if (count > 0) {
float average = static_cast<float>(sum) / count;
cout << "Average: " << average << endl;
cout << "Max: " << max << endl;
cout << "Min: " << min << endl;
} else {
cout << "No valid grades entered." << endl;
}
return 0;
}
المواضيع ذات الصلة
الدخول أو التسجيل السريع
- كتاب دليلك المُختصر لبيع المُنتجات الرّقمية
- x32x01
- التحديث:
- كتاب الدّليل المُختصر لصفحات الهبوط (Landing Pages)
- x32x01
- التحديث:
- دورة EJPTv2 من شرح م/أحمد سلطان - Ethical Hacking
- x32x01
- التحديث:
- ملخص كورس 200 -301 CCNA للـ م/ عبير حسنى
- x32x01
- التحديث:
- كتاب تعلم برمجة Node.JS
- x32x01
- التحديث:
- تعلم لغة برمجة ++C من البداية إلى البرمجة الكائنية
- x32x01
- التحديث:
- كتاب لشرح ChatGPT خطوة بخطوة
- x32x01
- التحديث:
- كتاب تطبيقات الذكاء الأصطناعي في خدمة اللغة العربية
- x32x01
- التحديث:
- كتاب أكثر من 100 أداة لزيادة إنتاجية الأعمال
- x32x01
- التحديث:
- التحريك عبر CSS
- x32x01
- التحديث:
إحصائيات المنتدى
- المواضيع
- 1,829
- المشاركات
- 2,027
- أعضاء أكتب كود
- 468
- أخر عضو
- عبدالله احمد