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.

językC - Wypełnienie tablicy 4x4 liczbami losowymi

klaudia10113 14 Lis 2013 20:54 2709 13
  • #1 14 Lis 2013 20:54
    klaudia10113
    Poziom 7  

    Hej ma problem.
    Napisałam program w języku C, który powinien wypełniać tablice 4x4 liczbami losowymi jednak wyświetla same zera.
    Co jest w nim nie tak?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 13
  • #3 14 Lis 2013 21:26
    klaudia10113
    Poziom 7  

    Zwraca kolejną liczbę losową.

    0
  • #5 14 Lis 2013 21:37
    Dżyszla
    Poziom 42  

    Jakiego kompilatora używasz? Co jest dokładnie napisane w pomocy?

    Dodano po 1 [minuty]:

    @LA72 - to jest opis funkcji rand a nie random ;) Też mnie to trochę zaskakuje (szczególnie, że bezparametrowy), więc nie strzelam z góry rozwiązaniem...

    0
  • #6 14 Lis 2013 21:44
    klaudia10113
    Poziom 7  

    Dev używam

    Dodano po 6 [minuty]:

    pozmieniałam na rand ();
    i to dalej ma taki sam efekt
    a wykładowca powiedział, że trzeba właśnie te funkcji użyć

    0
  • #7 14 Lis 2013 21:53
    Dżyszla
    Poziom 42  

    No tak, jeden z kompilatorów, który - przynajmniej kiedyś - nie posiada nawet dokumentacji kodu.
    Jeśli random() odpowiada funkcji rand() w standardzie Ansi C, to zwraca wynik z zakresu <0, 1). Po zrzutowaniu (niejawnym) na int, da zawsze 0. Problem ten omija się dokonując obliczenia reszty z dzielenia (%) przez zakres - jak w linku pokazanym przez kolegę.

    0
  • #8 14 Lis 2013 21:57
    klaudia10113
    Poziom 7  

    pozmieniałam na rand ();
    i to dalej ma taki sam efekt
    a wykładowca powiedział, że trzeba właśnie te funkcji użyć

    0
  • #10 14 Lis 2013 22:05
    klaudia10113
    Poziom 7  

    mam coś takiego

    Code:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    int losowe[4][4];

    int maksimum = 1000;

    int main(void)
    {
       srand(time(NULL));
       for (int i = 0; i < 4; ++i) {
          for (int j = 0; j < 4; ++j) {
             losowe[i][j] = rand() % 1000;
                            // wypisujemy dla pewnosci
             printf("%d ", losowe[i][j]);
          }
          printf("\n");
       }
       return 0;
    }


    ale nie wyświetla mi tabelki tylko liste jakichś wartości i zaraz znika a ja tak nie chce

    0
  • #11 14 Lis 2013 22:11
    Dżyszla
    Poziom 42  

    Znikanie to efekt zakończenia pracy programu. Jeśli chcesz wstrzymać działanie programu użyj np. polecenia system("pause") , albo getch(), albo od biedy wczytania z wykorzystaniem scanf. Tutaj znajdziesz więcej: https://www.google.pl/#q=c%2B%2B+zamyka+sie+okno

    Przejście do nowej linii chyba powinno odbyć się poprzez wyświetlenie \n\r (albo \r\n - nie pamiętam sekwencji).

    0
  • #12 14 Lis 2013 22:17
    klaudia10113
    Poziom 7  

    wpisałam gdzie tylko sie to dało i nie zatrzymuje programu :(

    0
  • #13 16 Lis 2013 17:15
    the_fifth_horseman
    Poziom 32  

    Pokaż aktualny kod razem z tym co dodałaś.

    0
  • #14 16 Lis 2013 18:28
    klaudia10113
    Poziom 7  

    Już sie z tym uporałam :D

    0