البرمجة

كيفية عد الوجوه على النرد

It looks like there’s a small mistake in your code that’s causing the issue. You’re incrementing frequency1 in every case of your switch statement instead of incrementing the correct frequency variables. Here’s the corrected code:

cpp
#include #include #include #include int main() { int face; int frequency1 = 0; int frequency2 = 0; int frequency3 = 0; int frequency4 = 0; int frequency5 = 0; int frequency6 = 0; for (int counter = 1; counter <= 6000; counter++) { face = 1 + rand() % 6; switch (face) { case 1: ++frequency1; break; case 2: ++frequency2; break; case 3: ++frequency3; break; case 4: ++frequency4; break; case 5: ++frequency5; break; case 6: ++frequency6; break; default: std::cout << "program should never get here!!! "; break; } } std::cout << "the number of face 1 is : " << frequency1 << std::endl; std::cout << "the number of face 2 is : " << frequency2 << std::endl; std::cout << "the number of face 3 is : " << frequency3 << std::endl; std::cout << "the number of face 4 is : " << frequency4 << std::endl; std::cout << "the number of face 5 is : " << frequency5 << std::endl; std::cout << "the number of face 6 is : " << frequency6 << std::endl; return 0; }

This should now correctly count the frequency of each face when the dice is thrown 6000 times.

المزيد من المعلومات

بالطبع! يبدو أنك تستخدم الدالة rand() لتوليد أرقام عشوائية في الفترة من 1 إلى 6 لتمثيل وجوه النرد. ولكن هناك بعض الأمور التي يمكن تحسينها في الشفرة:

  1. بادئة السطر using namespace std;: استخدام هذه البادئة يمكن أن يؤدي إلى تداخلات في أسماء الأشياء. بدلاً من ذلك، يفضل استخدام std:: قبل اسم كل شيء من مكتبة الـStandard Library مثل cout وendl.

  2. عدم استخدام std::setw: قمت بتضمين واستخدمت using std::setw; ولكن لم تستخدم setw في الشفرة. يمكنك استخدام setw لتهيئة عرض الأعمدة عند طباعة النتائج.

  3. التعليقات الإضافية: قم بإضافة تعليقات إلى الشفرة لتوضيح الأغراض والخطوات الرئيسية.

بالتالي، هناك تحسينات بسيطة يمكن إجراؤها لتحسين قراءة الشفرة وصيانتها. تعديل الشفرة بناءً على هذه الاقتراحات يمكن أن يكون كالتالي:

cpp
#include #include #include int main() { // Initialize variables to count the frequency of each face int frequency[6] = {0}; // Seed the random number generator srand(static_cast<unsigned int>(time(0))); // Roll the dice 6000 times for (int counter = 0; counter < 6000; counter++) { int face = 1 + rand() % 6; // Generate a random number between 1 and 6 ++frequency[face - 1]; // Increment the frequency of the corresponding face } // Print the results for (int i = 0; i < 6; i++) { std::cout << "the number of face " << i + 1 << " is : " << frequency[i] << std::endl; } return 0; }

هذه التحسينات تجعل الشفرة أكثر وضوحًا وسهولة في الصيانة، مما يجعلها أكثر كفاءة.

مقالات ذات صلة

زر الذهاب إلى الأعلى

المحتوى محمي من النسخ !!