PDA

View Full Version : سوال: سوال درمورد تابع rand()



mohammadali1375
پنج شنبه 30 آذر 1391, 10:47 صبح
سلام.
چرا هروقت تابع rand رو تو هر اجرای برنامه صدا میزنم یه مدار بر میگردونه ؟
مثلا اگه یه بار صدا بزنم 3 میده. برنامه بسته نشده یه بار دیگه صداش میزنم 5 میده.
حال وقتی برنامه رو میبندم و باز میکنم دوباره بار اول 3 بار دوم 5 میده
چه جوری باید ازش استفاده کنم ؟

vahid-p
پنج شنبه 30 آذر 1391, 10:55 صبح
تابع rand() اگه میخواید هر دفعه یه نتیجه رو برنگردونه باید مقدار اولیه بهش بدید. مقدار اولیش توسط تابع srand() مشخص میشه.
قبل از اینکه از تابع rand استفاده کنید، این خط رو بنویسید :
srand(time(NULL));
البته چون مقدار اولیه رو توسط زمان مشخص کردیم، مسلمه کتابخونه ctime رو هم اضافه کنید.

mohammadali1375
پنج شنبه 30 آذر 1391, 11:16 صبح
ممنون :قلب:

srand(time(new time_t()));

H_G_G_I
پنج شنبه 30 آذر 1391, 14:57 عصر
این که نوشتی یه کار اشتباست .:عصبانی++:

srand(time(new time_t()));

newکه می کنی باید ادرس رو داشته باشی تا بعد بتونی delete کنی .
همین درسته ::

srand(time(NULL));