سلام
توی زبان C؛چطور میتونم از تابع random استفاده کنم؟یه بار با این تابع یه برنامه نوشتم که توی هربار اجرا فقط عدد 346 رو انتخاب می کرد!
میخواهم عددی که انتخاب میکنه یا 1 باشه یا 2؟
در ضمن چطور میتونم بهش بگم از بازی مثلا 0 تا 80 فقط عدد انتخاب کن؟
سلام
توی زبان C؛چطور میتونم از تابع random استفاده کنم؟یه بار با این تابع یه برنامه نوشتم که توی هربار اجرا فقط عدد 346 رو انتخاب می کرد!
میخواهم عددی که انتخاب میکنه یا 1 باشه یا 2؟
در ضمن چطور میتونم بهش بگم از بازی مثلا 0 تا 80 فقط عدد انتخاب کن؟
برای تولید اعداد تصادفی که هر بار مقدار متفاوتی داشته باشه و عدد 1 یا2 باشه میتونید کد زیر رو بنویسید:
#include<ctime>
#include<cstdlib>
void main()
{
int x;
srand(time(0));
x=1+rand()%2;
}
با هر بار اجرا x مقدار 1 یا 2 رو میگیره
بهتر هست که از تابع random استفاده نکنید (به دلیل پایین آمدن قابلیت حمل) و به جای اون از rand (مثال بالا) که با استاندارد ANSI C سازگار هست استفاده کنید.
این هم نمونه برای random با بازه ی 1 تا 2
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
void main()
{
int x;
clrscr();
randomize();
for (int i = 0; i < 5; i++)
{
x = random(2) + 1;
printf("%d\n", x);
}
getch();
}
میتونی اول تابع main از عبارت randomize() استفاده کنی در این صورت در هر بار اجرا عدد متفاوت باز میگرداند
برای اینکه تابع rand اعداد تکراری تولید نکند باید توسط تابع srand عددی unsigned از ورودی بگیریم بدین ترتیب با هر بار اجرا randعدد جدیدی تولید میکند.برای تولید عدد تصادفی بین بازه a تا b باید از فرمول زیر استفاده کرد:
[a+rand()%[b-a+1مثلا برای داشتن عدد تصادفی در بازه 10 تا 80 باید نوشت:
10+rand()%71
برنامه زیر 10 عدد تصادفی در بازه 1 تا 6 تولید میکند:#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
unsigned number;
cout<<"enter number:";
cin>>number;
srand(number);
for(int i=0;i<10;i++){
cout<<1+rand()%6;
cout<<endl;
}
getch();
return 0;
}
آخرین ویرایش به وسیله m.@.@.i : سه شنبه 15 دی 1388 در 20:19 عصر
سلام.چرا با فرمول بندی؟
بهتره منطقشو بدونیم.وقتی شما اعداد رو به 71 تقسیم میکنی باقیمونده ها بین 0 تا 70 هستند حالا 10 تا اضافه میکنیم تا بشن بین 10 تا 80.پس فقط باید این دو تا عدد رو درست انتخاب کنیم.
اینکه هربار کاربر عدد رو وارد کنه اصلا کارامد نیست چون اغلب تو برنامه ها اجازه همچین کاری رو نداریم.بهتره از همون time که دوستمون گفتن استفاده کنیم که خودش این عدد رو تولید میکنه.
فکر میکنم ورودی srand اینتتیجر نیست بلکه unsigned هست که البته تو کدتون اصلاحش کردین.
باسلام
میخواستم اگه میتونید کد تابع rand و srand زو بزام بزارید.
کد خود تابع رو میخوام نه استفاده از اونو ممنون میشم.خیلی فوریه
تو کتابخانه stdlib هم سرچ کردم چیزی دستگیرم نشد
سلام کد برنامه ساخت جدول با سی رو میخواستم میشه راهنمایم کنیین واسه نوشتنش ممنون