Skocz do zawartości

Losowanie w C++


Arekadiusz

Rekomendowane odpowiedzi

Witam! Chcem sobie napisać skrypt losujący podaną ilość znaków z podanego przedziału. Czy ktoś może wie jak to zrobić bo ja nie mam pojęcia?

Wiem tylko że do losowania służy funkcja rand() ale ja potrzebuję wylosować z podanego przedziału (cyfr i liter) podaną ilość znaków.

 

Dzięki za pomoc!

Odnośnik do komentarza
Udostępnij na innych stronach

Zobacz w wiki co to jest ASCII i jakiej cyfrze odpowiada jaka litera.

Albo sprawdź np.

 

printf("%d", 69);
printf("%c", 69);

 

przepraszam, ze w C, ale C++ słabo znam :P

 

W C++ też jest biblioteka stdio (cstdio) więc tu nie ma różnicy. ;)

Odnośnik do komentarza
Udostępnij na innych stronach

for(int z=-255; z<255; z++)

 

DAFUQ? ASCII to 256 znaków od 0 do 255, a nie od -255 D:

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Działa... wiesz, jak przyczepisz do samochodu z tyłu krowę i pojedziesz, to też można powiedzieć czy działa, pytanie, czy prawidłowo... bo jak sobie sprawdzisz jakie wartości char przyjmuje to raczej nie. Ani jakie wartości ma ASCII. A to, ze coś się wyświetla, to znaczy, ze ktoś przewidział, ze się taki ktoś jak Ty znajdzie :P

Odnośnik do komentarza
Udostępnij na innych stronach

Wpisuje srand ( time(NULL) ); według przykładu z tamtej strony ale nie działa. Próbowałem też innych możliwości z tamtej strony ale nic nie działa.

Dodam jeszcze że piszę w programie C++ Builder. Może to ma jakieś znaczenie?

Odnośnik do komentarza
Udostępnij na innych stronach

Okej, ale wiesz że srand inicjuje tylko seeda?

Musisz przed losowaniem dać srand i potem rand() % x

Początek programu:

//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include <time.h></p><p>#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
Tokno *okno;
int ilosc=10;
srand(time(NULL));

 

I gdzieś w środku:

char znak = ( rand() % ( 'Z' - 'A' ) ) + 'A';

 

Podczas kompilacji pokazują się dwa błędy:

'time' cannot start a parametr declaration.

) expected.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...