• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Losowanie z wybranych liczb

Object Storage Arubacloud
0 głosów
2,080 wizyt
pytanie zadane 21 czerwca 2015 w C i C++ przez szymonn7 Początkujący (350 p.)
Hej, kurde już odchodze od zmysłów, mam wrażenie, że mózg mi się przegrzewa...heh
Nie no...Mam zadanie, żeby wpisac 3 liczby a potem wylosowac 2 z nich bez powtorzen.
Kompletnie nie wiem co wpisac w funkcji 'wypiszLiczby' w pozycji 'licznik'... Wiem, ze zaczynajac od 0 i dajac ograniczenie do 3 wypisze mi ona pierwsze 3 pozycje z mojej tablica.
W ogole dobrze mysle?...Prosze o mala pomoc

Kod: http://pastebin.com/FMwEjbr3

3 odpowiedzi

0 głosów
odpowiedź 21 czerwca 2015 przez Macek Kolo Mądrala (5,480 p.)
srand() i rand(). W bibliotece <ctime>

http://www.cplusplus.com/reference/cstdlib/srand/
komentarz 22 czerwca 2015 przez szymonn7 Początkujący (350 p.)

Kurde albo wy mnie nie zrozumieliście, albo ja nie zrozumiałem polecenia, albo nie rozumiem was. 'Mam zadanie, żeby wpisac 3 liczby a potem wylosowac 2 z nich bez powtorzen.' Ja to zrozumiałem tak, że wpisuje liczby do 3 miejsc w tablicy, a potem raz losuje ktoras z 3 miejsc w tablicy powiedzmy ze wylosowalo mi tab[2] i pozniej znowu losuje ktoras z liczb i jesli znowu wylosuje mi tab[2] to zeby jej nie wypisywalo tylko znowu zaczelo losowac az wylosuje cos innego niz tab[2].

0 głosów
odpowiedź 21 czerwca 2015 przez hit02 Nałogowiec (33,970 p.)
Zapisz liczby do tablicy, a następnie losuj bez powtórzeń jej indeksy.
komentarz 22 czerwca 2015 przez szymonn7 Początkujący (350 p.)

Kurde albo wy mnie nie zrozumieliście, albo ja nie zrozumiałem polecenia, albo nie rozumiem was. 'Mam zadanie, żeby wpisac 3 liczby a potem wylosowac 2 z nich bez powtorzen.' Ja to zrozumiałem tak, że wpisuje liczby do 3 miejsc w tablicy, a potem raz losuje ktoras z 3 miejsc w tablicy powiedzmy ze wylosowalo mi tab[2] i pozniej znowu losuje ktoras z liczb i jesli znowu wylosuje mi tab[2] to zeby jej nie wypisywalo tylko znowu zaczelo losowac az wylosuje cos innego niz tab[2].

komentarz 22 czerwca 2015 przez hit02 Nałogowiec (33,970 p.)
No tak, dokładnie. Rozkmiń, jak działa losowanie bez powturzeń, a potem zamiast wypisywać wylosowaną liczbę, wypisuj tą, która jest w tablicy pod wylosowanym indeksem.

Sam algorytm chyba rozumiesz, ale ciężej jest ci to przelać na kod, więc zacznij od czegoś prostrzego.
komentarz 22 czerwca 2015 przez szymonn7 Początkujący (350 p.)
No tak, algorytm rozumime, rzeczywiście ciężej jest to przelać na kod... Da się zrobićfunkcje w pętli, która będzie zwracała (return) wartosc tablicy?
komentarz 22 czerwca 2015 przez hit02 Nałogowiec (33,970 p.)
Oczywiście. Zależy, czy chcesz, aby zwracała zawsze z tej samej tablicy, czy nie, musisz w pierwszym przypadku zaimplementować tablicę w funkcji (static) lub tablicę globalną, a w drugim ją przekazywać.
komentarz 22 czerwca 2015 przez katolik6 Dyskutant (8,140 p.)
w sumie ten przypadek da się znacznie prościej rozwiązać: int tablica[3]; wczytujesz cinem do każdej komórki, potem wylosuj liczbe od 0 do 2 i wypisz wszystkie wartości z tablicy oprócz tej wylosowanej. Zadziała tylko w tym programie, ale zadziała.
0 głosów
odpowiedź 21 czerwca 2015 przez Eerie Mądrala (7,130 p.)
Skopiowalem twój kod do CodeBlocks, skompilowałem, uruchomiłem i wszystko działa dobrze. Program wypisuje te trzy liczby. Wszystko działa dobrze. Gdzie jest twój problem?

Dlaczego pytasz się nas, zamiast po prostu to skompilować i sprawdzić czy działa? W ogóle nie napisałeś gdzie leży problem.

Ogólnie, ja bym ten program zrobił, od początku do końca, tak:

-Wpisać trzy liczby do tablicy

-wylosować liczbę z zakresu od 0 do 2 i zapisać do zmiennej, nazwijmy ją zmienna1.

-wylosować ponownie liczbę z zakresu od 0 do 2 i zapisać do zmiennej, nazwijmy ją zmienna2. Porównać z poprzednio wylosowaną liczbą. Jeśli jest inna, przejść dalej. Jeśli jest taka sama, powtarzać krok do skutku.

-wypisać dwie liczby z tablicy, o indeksach odpowiadających zmiennym z losowań, czyli tak:

cout << tablica[zmienna1] << " " << tablica[zmienna2] << endl;

I masz już zrobiony program.
komentarz 22 czerwca 2015 przez szymonn7 Początkujący (350 p.)

Wiem, ze to co wylosowalem dziala poprawnie. Kurde albo wy mnie nie zrozumieliście, albo ja nie zrozumiałem polecenia, albo nie rozumiem was. 'Mam zadanie, żeby wpisac 3 liczby a potem wylosowac 2 z nich bez powtorzen.' Ja to zrozumiałem tak, że wpisuje liczby do 3 miejsc w tablicy, a potem raz losuje ktoras z 3 miejsc w tablicy powiedzmy ze wylosowalo mi tab[2] i pozniej znowu losuje ktoras z liczb i jesli znowu wylosuje mi tab[2] to zeby jej nie wypisywalo tylko znowu zaczelo losowac az wylosuje cos innego niz tab[2].

Podobne pytania

+2 głosów
2 odpowiedzi 3,405 wizyt
pytanie zadane 14 lipca 2015 w C i C++ przez Wadim Początkujący (260 p.)
+1 głos
2 odpowiedzi 1,998 wizyt
0 głosów
1 odpowiedź 1,887 wizyt

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...