Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C - Losowanie liczb i maksimum

posanpotasu 27 Sty 2014 17:41 1848 12
  • #1 27 Sty 2014 17:41
    posanpotasu
    Poziom 6  

    Witam ma taki oto program:



    Kod: C
    Zaloguj się, aby zobaczyć kod


    I czy da się zrobić maksimum z wylosowanych liczb bez użycia tablicy?

    0 12
  • Pomocny post
    #2 27 Sty 2014 18:05
    laki_17
    Poziom 17  

    Tak można to zrobić. Wystarczy w pierwszym kroku zapisać wylosowaną do zmiennej jako maksymalna i w każdym kolejnym kroku pętli for porównywać z tą maksymalną. Za pomocą warunku if wprowadzić że jeśli wylosowana liczba jest większa niż ta zapisana w max to wylosowaną liczbę zapisz w max. Można też nie zapisywać tej pierwszej wylosowanej tylko od razu porównywać z zmienną max.

    0
  • #3 27 Sty 2014 18:14
    posanpotasu
    Poziom 6  

    Gdy tak robie mam problem z funkcja srand o c tym chodzi?

    [Warning] passing argument 1 of 'srand' makes integer from pointer without a cast [enabled by default]

    0
  • Pomocny post
    #4 27 Sty 2014 18:43
    laki_17
    Poziom 17  

    Masz gotowy program. Nie wiem czy tak wprowadzałeś ale ten na pewno działa i stworzony właśnie przed sekundą w DEV-C++;

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #5 27 Sty 2014 18:51
    the_fifth_horseman
    Poziom 32  

    Da się, jeżeli dodasz jeszcze jedną zmienną na przechowanie maksimum - zaczynasz od 0 i nadpisujesz wylosowaną liczbą jeżeli jest większa od aktualnego maksimum.

    0
  • #6 27 Sty 2014 18:54
    Dżyszla
    Poziom 42  

    posanpotasu napisał:
    Gdy tak robie mam problem z funkcja srand o c tym chodzi?

    [Warning] passing argument 1 of 'srand' makes integer from pointer without a cast [enabled by default]
    To tylko ostrzeżenie o niejawnym rzutowaniu.

    0
  • Pomocny post
    #7 27 Sty 2014 21:15
    Krzysztof Gustaw
    Poziom 23  

    Witam!
    Funkcja srand() generuje nowe tzw ziarno, czyli zmienia posiew. Innymi słowy, łopatologiczne, w zależności od wartości parametru który jest liczbą całkowitą czyli typu int, otrzymasz inny ciąg losowania. Ty wstawiłeś tutaj wskaźnik NULL, który formalnie nie jest liczbą całkowitą, stąd to ostrzeżenie. Jeśli chcesz mieć najbardziej "losowe" liczby to jako parametr podaj funkcję time(NULL). Funkcja time podaje bieżący czas systemowy który jest aktualizowany co sekundę.

    0
  • #8 28 Sty 2014 12:30
    posanpotasu
    Poziom 6  

    DZiekuje za pomoc racja trzeba bylo stawic srand(time(NULL));
    Mam jeszcze jedno pytanie chciałbym zrobic if ktory wyszukuje najczestcza liczbe z zakresu wieksze od 30 ale mniejsze od 40 bez uzycia tablic. Myslalem ze podobnie to zrobie jak maxa ale nie wychodzi. Moze mi ktos opisac co zrobic?

    0
  • #9 28 Sty 2014 16:42
    laki_17
    Poziom 17  

    Da się właśnie w bardzo podobny sposób jak podałem to max. Mógłbym to napisać w postaci paru linii kodu ale proponuje abyś wysłał nam to co Ci nie chciało działać to postaramy się pomoc co jest nie tak.

    0
  • #10 28 Sty 2014 16:58
    the_fifth_horseman
    Poziom 32  

    Zliczasz ile razy element w i-tej pozycji występuje zaczynając od i-tej pozycji do końca tablicy.

    0
  • #11 02 Lut 2014 15:18
    posanpotasu
    Poziom 6  

    Wedlug mnie musze porownac dominanta czy jest wieksze od wylosowanej liczby czyli x. Kolejnie zwiekszam wartosc dominanty o 1 i znow porownuje. Mam tylko problem ze za kazdym razem wyskakuje mi 0

    Kod: C
    Zaloguj się, aby zobaczyć kod

    0
  • #12 02 Lut 2014 18:39
    2341115
    Użytkownik usunął konto  
  • #13 02 Lut 2014 23:48
    posanpotasu
    Poziom 6  

    Tak bez tablic. Na tablicy napisalem taki program. Lecz na zajeciach gdy skonczylem zadanie mialem czas wolny wiec zaczalem sie zastanawiac jak to napisac bez tablic.
    O dziwo troche mnie to zagielo wiec postanowilem poszukac pomocy. NIby absurdalny program kilka linijek kodu ale sprawia problemy :)

    0