PDA

View Full Version : ایجاد اعداد به صورت رندوم



Placebo
چهارشنبه 29 آبان 1387, 12:55 عصر
سلام دانشجوی سال اول علوم کامپیوتر aut هستم


به ما یک homework دادن .... توش یک سری قسمت ها هست که نیاز به کمک دارم برای درست کردنشون


مثلا قراره تو یک جا یک 2 بار عدد تصادفی بین 1 تا 10 یا 10 تا 99 یا 100 تا 999 ایجاد شود


یا مثلا گفته به صورت رندوم یکی از 4 عملگر + - * / انتخاب شود ....

شما همون اولی رو راهنمایی کنید من متوجه می شم


لطفا از توابع و چیز های مقدماتی استفاده کنید
مثلا فقط time.h stdio.h و توابعی مثل srand() یا rand()


لطفا کامل توضیح بدید اگر میشه

خیلیم ساده باشه !

ممنونم:بوس:

SamaPic
چهارشنبه 29 آبان 1387, 19:24 عصر
با سلام
اين همان برنامه اي است كه خواسته بوديد.
اگر جاي عدد 10 موجود در برنامه 100 بگذاريد عدد رندم شما بين 0 و 100 است.
به جاي عدد 10 هر عددي كه بگذاريد عددهاي بين 0 تا ان عدد را به شما مي دهد.
ولي شما 0 را نمي خواهيد بنابر اين پس از اين برنامه يك دستور if بگذاريد تا اگر عدد بدست امده 0 بود دوباره انتخاب كنند.

include <stdlib.h>#
#include <stdio.h>
#include <conio.h>

voide main()

{
int i;
for (i=0,i<2;i++);
printf("%d\n",rand()%10);
getch();[/FONT][/FONT][/FONT]
}
نمي دونم چيكار كنم درست بنويسه هر كار كردم نشد.

emad_67
چهارشنبه 29 آبان 1387, 22:58 عصر
دوست قبلی از تابع rand فقط استفاده کردن. این تابع به تنهایی رنج مشخصی از اعداد رو تولید میکنه. یعتی 10 بار هم برنامه رو باز کنید و ببندید باز هم همون اعداد نشون داده میشن. برای تولید رندوم باید srand رو هم اضافه کردو srand تابعی هست که به rand مقدار اولیه برای تولید اعداد میده که تابع rand بر اساس اون مقدار دوره تناوبی از اعداد رو تولید میکنه.

ولي شما 0 را نمي خواهيد بنابر اين پس از اين برنامه يك دستور if بگذاريد تا اگر عدد بدست امده 0 بود دوباره انتخاب كنند.
نیازی به if نیست مثلا اینو ببینید:


srand(time(0));
rand()%10+1;

ما باقیمونه عدد تولید شده توسط rand رو بر 10 بدست اوردیم و این عدد مطمئنا بین 0 تا 9 خواهد بود. حالا بازه ما 1 تا 10 هست، بنابراین اونو با 1 جمع میکنیم تا عددی بین 1 تا 10 تولید بشه.

SamaPic
پنج شنبه 30 آبان 1387, 00:49 صبح
با تشكر از دوست عزيزمون كه به من كمك كردن تا اين اشتباه را در برنامه اي انجام ندهم.