اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله وبركاته 

الآن هنا لدي مشكله في هذا البرنامج 

اريد مع كل لوب يعمله ال for-loop يتغير ال random - number  فــ ما هو الخطأ الذي لدي في هذا الكود

#include <iostream>

using namespace std;

int main(){

    int a;
    int list_of_random_numbers[4];
    for (int s = 0; s <= 3; s++) {

        srand(time(0));
        a = rand() % 3;
        list_of_random_numbers[s] = a;
        cout << "random number --> " << list_of_random_numbers[s]; 
        cout << endl;

    }

    return 0;
}

 

Recommended Posts

  • 0
نشر

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

  • الحل هو نقل srand لقبل الحلقة فيتم تهيئته مرة واحدة
  • مجالك للأعداد صغير بطول 3 لذلك تكرار قيمة منه احتماله عال..
#include <iostream>

using namespace std;

int main(){

    int a;
    int list_of_random_numbers[4];
    srand(time(0));
    for (int s = 0; s <= 10; s++) {

        a = rand() % 100;
        cout << a ;
        list_of_random_numbers[s] = a;
       // cout << "random number --> " << list_of_random_numbers[s]; 
        cout << endl;

    }

    return 0;
}

النتيجة بحال توسعة المجالات وعدد الأعداد العشوائية التي يتم إنشائها.

67
0
93
66
13
41
93
27
93
94
36

 

  • 0
نشر
بتاريخ On 6/23/2022 at 19:48 قال Wael Aljamal:

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

  • الحل هو نقل srand لقبل الحلقة فيتم تهيئته مرة واحدة
  • مجالك للأعداد صغير بطول 3 لذلك تكرار قيمة منه احتماله عال..

#include <iostream>

using namespace std;

int main(){

    int a;
    int list_of_random_numbers[4];
    srand(time(0));
    for (int s = 0; s <= 10; s++) {

        a = rand() % 100;
        cout << a ;
        list_of_random_numbers[s] = a;
       // cout << "random number --> " << list_of_random_numbers[s]; 
        cout << endl;

    }

    return 0;
}

النتيجة بحال توسعة المجالات وعدد الأعداد العشوائية التي يتم إنشائها.


67
0
93
66
13
41
93
27
93
94
36

 

السلام عليكم \

الكود لا يعمل لا اعلم ما هو السبب ثانيا انا اريد ان LOOP تلف 3 مرات و في هذه ال 3 مرات تعطيني 3 ارقام غير مرتبه من رقم  1 الى 3 بأستخدام ال RAND و شكرا 

  • 0
نشر
بتاريخ 2 دقائق مضت قال Mohammmed Mahmoud:

السلام عليكم \

الكود لا يعمل لا اعلم ما هو السبب ثانيا انا اريد ان LOOP تلف 3 مرات و في هذه ال 3 مرات تعطيني 3 ارقام غير مرتبه من رقم  1 الى 3 بأستخدام ال RAND و شكرا 

الشيفرة المرفقة مجربة، وفي حال ظهر لك خطأ يمكنك إرفاقه، و ذكرت أنني قمت بتعديل المجال للارقام لتوضيح عملية الإنشاء العشوائي للقيم المختلفة.

  • 0
نشر
بتاريخ 7 دقائق مضت قال Wael Aljamal:

الشيفرة المرفقة مجربة، وفي حال ظهر لك خطأ يمكنك إرفاقه، و ذكرت أنني قمت بتعديل المجال للارقام لتوضيح عملية الإنشاء العشوائي للقيم المختلفة.

صحيح لقد اخطأت انا شيفرتكت صحيحه و لكن انا اريد ان تمر فقط بي 1  //  3 و اريد ان يلف اللوب فقط 3 لفات و شكرا

  • 0
نشر
بتاريخ 18 دقائق مضت قال Mohammmed Mahmoud:

صحيح لقد اخطأت انا شيفرتكت صحيحه و لكن انا اريد ان تمر فقط بي 1  //  3 و اريد ان يلف اللوب فقط 3 لفات و شكرا

تمام، يمكنك تعديل القيم. مجال الحلقة و باقي القسمة بدل 100 ضع 3

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...