Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > проблемы с рандомом в билдере


Автор: bubnoplyass 18.5.2008, 14:01
Возникла такая проблемка... Как получить рандомное число к примеру от 1 до 100 (1..100) (C++Builder) , как уже не извращался неполучается((( в делфи получается а в билдере нет.... Паодскажите плиз

Автор: gather 18.5.2008, 14:25
Copy-paste из хелпа

Код

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
    int i;
    randomize();
    printf("Ten random numbers from 0 to 99\n\n");
    for(i=0; i<10; i++)
       printf("%d\n", rand() % 100);
    return 0;
}

Автор: orthrus 18.5.2008, 14:28
а если попробовать вот так:
Код

int i = std::rand()%100 + 1;

Автор: bubnoplyass 18.5.2008, 14:29
Цитата(gather @ 18.5.2008,  14:25)
Copy-paste из хелпа

Код

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
    int i;
    randomize();
    printf("Ten random numbers from 0 to 99\n\n");
    for(i=0; i<10; i++)
       printf("%d\n", rand() % 100);
    return 0;
}

ага спссиб.. я в хелпе уже был и это видел...... только есть одна проблемка....нужно это сделать в БИЛДЕРЕ (C++Builder) ...


подскажите плиз очень надо....

Добавлено через 3 минуты и 8 секунд
Цитата(orthrus @ 18.5.2008,  14:28)
а если попробовать вот так:
Код

int i = std::rand()%100 + 1;

не получается(((

Автор: bubnoplyass 18.5.2008, 14:45
правильный ответ 
Код

int a;
Randomize();
a=RandSeed % 100;


Автор: gather 18.5.2008, 15:02
bubnoplyass, 
Цитата(bubnoplyass @  18.5.2008,  14:29 Найти цитируемый пост)
нужно это сделать в БИЛДЕРЕ (C++Builder) ...

и что? религия чтоль не позволяет использовать 
Код

randomize();
rand() % 100;

в своем проекте? или лень попробовать?  smile 

Автор: bubnoplyass 18.5.2008, 16:35
Цитата(gather @ 18.5.2008,  15:02)
bubnoplyass, 
Цитата(bubnoplyass @  18.5.2008,  14:29 Найти цитируемый пост)
нужно это сделать в БИЛДЕРЕ (C++Builder) ...

и что? религия чтоль не позволяет использовать 
Код

randomize();
rand() % 100;

в своем проекте? или лень попробовать?  smile

нее не религия просто в билдере нету функции rand)))

Автор: Mpak 18.5.2008, 17:57
bubnoplyass, 
Подключите библиотеку stdlib.h

И вот вам на билдере (С++ BUILDER):
Код

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "stdlib.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
randomize();
Label1->Caption = "Случайное число нынче = " + IntToStr(random(100));
}
//---------------------------------------------------------------------------


Автор: Dmi3ev 18.5.2008, 20:54
Если быть точным, Mpak, то число будет от 0 до 99 при таком коде
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
randomize();
Label1->Caption = "Случайное число нынче = " + IntToStr(random(100));
}


а чтобы от 1 до 100 надо написать так (если не изменяет память)
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
randomize();
Label1->Caption = "Случайное число нынче = " + IntToStr(random(100)+1);
}



Автор: Mpak 20.5.2008, 10:52
Dmi3ev, Вы абсолютно правыsmile С вашей памятью все в порядкеsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)