Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Program losujący losową liczbę, która odpowiada liczbie liczb kolejnego losowania


lethian

Rekomendowane odpowiedzi

Opublikowano

Witam

Na wstępie przepraszam od razu za to, że może brzmi to zbyt abstrakcyjnie i chaotycznie.

 

Chciałbym napisać program w C++, który:

1. Wylosuje jakąś liczbę.

2. Liczba z punktu 1. odpowiada liczbie liczb wylosowanych w drugim właśnie losowaniu.

 

Żeby nie wylosowało mi jakichś kosmicznych liczb to przyjmijmy dla uproszczenia, że przedziały w obu losowaniach niech będą <0,100>.

 

losowanie <0, 100> -- > 65 -- > losowanie 65 liczb - > 51, 12 ... 76 (razem 65 liczb)

 

Próbowałem zdeklarować tablicę, ale niestety .exe przestaje działać:

int liczbaLosow, losy[liczbaLosow]; rand() = liczbaLosow; ...

 

Proszę o jak najprostsze wskazówki, gdyż dopiero zaczynam przygodę z programowaniem.

Opublikowano

Musisz stworzyć tablicę dynamiczną:

int pierwsza = funkcjaLosujaca();
int* tablica = new int[pierwsza];

 

I jedziesz z koksem. Operujesz na niej tak samo, jak na zwykłej.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Weteran
Opublikowano

int liczbaLosow, losy[liczbaLosow]; rand() = liczbaLosow; ...

To nie ma prawa działać. Nawet jeśli twój kompilator pozwala ci na podanie zmiennej w liczbie elementów stałej tablicy, to i tak wpierw musisz zainicjować tą zmienną.

rand() = liczbaLosow - nie możesz do wywołania funkcji przypisać wartości.

 

Kod powinien wyglądać jakoś tak:

int size = rand() % 101;
int* tab = new int[size];
for (int i = 0; i < size; i++) tab[i] = rand() % 101;

 

Opublikowano


#include <iostream>

#include <cstdlib>

#include <ctime>

 

int main ()

{

srand( time( NULL ) );

int liczbaLosowan = rand() %100 + 1;

std::cout << "### LICZBA LOSOWAN: " << liczbaLosowan << " ###" ;

for (int i=0;i<liczbaLosowan;i++)

{

std::cout <<"\n" << "Liczba[" << i+1 << "]: " << rand() % liczbaLosowan + 1 ;

}

return 0;

}

 

Opublikowano

Nie robiłem jeszcze wskaźników (post #2 i 3 ???) i pętli for, ale najłatwiejsza była odpowiedź z postu #3, bo ogarnąłem od razu bez większa zastanowienia. Ale dobrze wiedzieć jak to zrobić z tablicami.

 

Dzięki wszystkim za odpowiedź.

  • 2 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...