الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]كود طباعه الاعداد الزوجيه والفرديه في عمودين متقابلين

مغلقمُجاب
بدأه طموحة بلا حدود في 8 مايو 2013 · 3 رد · 7,586 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم  اخواني

برنامج سي يقوم بتوليد 100 رقم عشوائي  ثم يطبع الاعداد الزوجيه في عمود والاعداد الفرديه في العمود المقابل له

كتبت هذا الكود لكن المشكله عند طباعه المصفوفتين والعناصر غير متساويه

#include<iostream>using namespace std;int main(){	int i,x,j=0,k=0;	int a[20],b[20];	for(i=0;i<100;i++)	{x=rand()%100;	if(x%2 == 0)	{a[k]=x;	k++;	}	else		{	b[j]=x;	j++;	}	}	if(k>j)	for(i=0;i<j;i++)	{	cout<<a<<"   "<<b;	    cout<<endl;	}	else		for(i=0;i<j;i++)	{	cout<<a<<"   "<<b;	    cout<<endl;	}			  return 0;}

ارجو المساعده باي فكره   ولكم جزيل الشكر

كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!

هيهــــــــات فالقمــــــــة لا تتســـــع إلا لـــــــواحد ومـــــع ذالكــــــــ فلكــــــل مجتهــــــــد نصيــــب

#2 أفضل إجابة

الكود بعد التصحيح :

#include<ctime>#include<cstdlib>#include<iostream>using namespace std;int main() {    int nombresPairs[50], nombresImpairs[50], valeurAleatoire, compteurPair = 0, compteurImpair = 0;    srand(time(NULL));    for (int i = 0; i < 10; i++) {        valeurAleatoire = rand() % 100;        if (valeurAleatoire % 2 == 0) {            nombresPairs[compteurPair] = valeurAleatoire;            compteurPair++;        } else {            nombresImpairs[compteurImpair] = valeurAleatoire;            compteurImpair++;        }    }    int minCompteur = (compteurPair < compteurImpair) ? compteurPair : compteurImpair,            maxCompteur = (compteurPair > compteurImpair) ? compteurPair : compteurImpair;    for (int i = 0; i < minCompteur; i++) {        cout << nombresPairs << "\t" << nombresImpairs << endl;    }    if (minCompteur == compteurPair)        for (int i = minCompteur; i < maxCompteur; i++)            cout << nombresImpairs << endl;    else        for (int i = minCompteur; i < maxCompteur; i++)            cout << nombresPairs << endl;    return 0;}
#3

اشكرك جدا جدا استاذ  الكود والفكره مفهومه
لكن عندي سؤال لو تكرمت 
ماذا يعني هذا السطر 

 srand(time(NULL));

 

ولماذا تضمين المكتبات هذه 

#include<ctime>#include<cstdlib>

ليست عندي معلومات كافيه عن توليد الارقام العشوائيه 

كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!

هيهــــــــات فالقمــــــــة لا تتســـــع إلا لـــــــواحد ومـــــع ذالكــــــــ فلكــــــل مجتهــــــــد نصيــــب

#4
اقتباس

ماذا يعني هذا السطر

srand(time(NULL));

 

البذرة (seed) ما هي إلا عدد صحيح يساعدنا في تغير العدد (العشوائي) المُولد من طرف الدالة rand فكلما تغيرت البذرة سيتغير العدد الذي تُعيده الدالة .. لهذا كان اختيار المبرمجين للزمن كبذرة للدالة العشوائية أمرا "مُوفقا" إذْ أن الزمن (كما هو معلوم) يتغير من لحظة إلى أخرى .. مما يتسبب في تغير العدد المُعاد من طرف الدالة.

للمزيد يمكنك مراجعة الموضوع التالي :

توليد الأرقام العشوائية (نظرة تحليلية مفصلة)

 

 

اقتباس

ولماذا تضمين المكتبات هذه

#include<ctime>#include<cstdlib>

 

الدالتان rand و srand موجودتان في المكتبة cstdlib و كذلك الثابت NULL أما الدالة time فتوجد في المكتبة ctime.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…