البرمجة

طريقة توليد أرقام عشوائية في C

It looks like there’s a small issue in your code. The printf function expects a character to be passed as an argument, but you’re passing a string ("@"). To fix this, you can use single quotes (') to indicate a character:

c
printf("%c", '@');

This should resolve the problem, and your code should print the correct number of “@” characters.

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

من المهم أن نفهم كيفية عمل الدالة rand() في ال C. تعتمد هذه الدالة على توليد أرقام عشوائية بناءً على قيمة بذرية (seed) معينة. إذا لم تقم بتعيين قيمة بذرية باستخدام دالة srand() قبل استخدام rand()، فإن قيمة البذرة الافتراضية ستكون صفر، مما يؤدي إلى توليد نفس التسلسل العشوائي في كل مرة تقوم فيها بتشغيل البرنامج.

لحل هذه المشكلة، قم بتعيين قيمة بذرية مختلفة في كل مرة تشغيل للبرنامج باستخدام الوقت الحالي كبذرة. يمكنك القيام بذلك عن طريق استخدام دالة srand(time(NULL)) قبل استخدام rand(). هذا سيجعل البرنامج يعتمد على الوقت الحالي لتوليد تسلسلات عشوائية مختلفة في كل مرة تشغيل.

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

c
#include #include #include int main() { srand(time(NULL)); // تعيين بذرة مختلفة في كل مرة int ran, i; ran = 1 + (rand() % 25 + 1); for (i = 0; i < ran; i++) { printf("%c", '@'); } printf("\n"); return 0; }

باستخدام هذا التعديل، يجب أن تحصل على عدد عشوائي من الرموز “@” في كل مرة تشغيل للبرنامج.

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