Skocz do zawartości

Losowanie w C++


Rekomendowane odpowiedzi

Opublikowano

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!

Opublikowano
( rand() % ( max - min ) ) + min;

Ten kod losuje 1 liczbę z przedziału liczb a mi chodzi o losowanie wielu znaków (ilość podana ze zmiennej) z podanych liczb i liter

  • Administratorzy
Opublikowano

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

Opublikowano
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. ;)

Opublikowano

Masz tu cały kod ASCII

#include <iostream>

using namespace std;

int main()
{
    for(int z=-255; z<255; z++)
    {
            cout << z << " " << char(z) << "." << endl;
    }
    system("pause");
    return 0;
}

Opublikowano
No lol. Proszę Cię.

 

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

Użyłem tego kodu tylko że pojawił się taki problem: Gdy włączam mój program zawsze losuje się ten sam znak. Jak temu zaradzić?

Opublikowano

Dołącz

#include <time.h>

i na początku programu:

srand(static_cast<int>(time(NULL)));

Wtedy ziarno generatora pseudolosowych liczb ustawia się na czas, który masz w komputerze.

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

 

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

  • Administratorzy
Opublikowano

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

Opublikowano
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.

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ę...