Консультация № 71946
21.01.2007, 16:49
0.00 руб.
0 4 4
Здравствуйте эксперты!Скажите где следует вставить процедуру Randomize(),чтобы каждый раз генерировались новые значения
x и y.Пробовал вставлять в main но не действует,значения выходят одни и те же.Заранее спасибо.

Приложение:
#pragma hdrstop#include <stdlib.h>#include <iostream>using namespace std;#include <conio.h>#pragma argsusedint x,y;void Random(void) {x=random(100)+1;y=random(100)+1;};int main(int argc, char* argv[]){Random(); cout<<x<<endl; cout<<y<<endl; getch(); return 0;}

Обсуждение

Неизвестный
21.01.2007, 17:07
общий
это ответ
Здравствуйте, Hunter20!
В программе должна быть <b>один раз</b> вызвана инициализация рэндома:

void main ()
{
srand (time (NULL));
x = rand ();
}
Неизвестный
21.01.2007, 17:50
общий
это ответ
Здравствуйте, Hunter20!
Самый простой выход:
1. добавить: #include <ctime>
2. внести изменения в вашу функцию Random() (см. код ниже...)

Приложение:
void Random(void) {srand(time(NULL));x = rand() % 100;y = rand() % 100;};
Неизвестный
21.01.2007, 19:38
общий
это ответ
Здравствуйте, Hunter20!

Данный код нормально компилируется в VS.NET:
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>

void main()
{
srand(time(NULL));
int x = rand()%100;
int y = rand()%100;
printf("%d %d",x,y);
getch();
}
Неизвестный
22.01.2007, 12:41
общий
это ответ
Здравствуйте, Hunter20!
Чтобы получать разные значения нужно в качестве аргументов
выбирать разные значения - лучше текущее время.
Удачи!
Форма ответа