[C] Wypełnianie tablicy losowymi wartościami

0

Witam zrobiłem funkcje która losuje jedynkę z prawdopodobieństwem 0.6 oraz zero z prawdopodobieństwem 0.4.Wygląda ona tak.

int losowanie()
{

srand (time(NULL));

if ((rand() % 10) < 6) 
return 1;
else 
return 0;

}

Teraz chciałbym taką funkcją wypełnić tabele 50elementową jedynkami i zerami.

Pomoże ktoś?

0

Z tą funkcją to masz szanse koło jeden do miliona, że nie wszystkie wartości w tablicy będą takie same...

0

srand () używa się raz.
nie raz na funkcję, raz na instancję programu. walnij to jako pierwszą linijkę w mainie.

Teraz chciałbym taką funkcją wypełnić tabele 50elementową jedynkami i zerami.
Pomoże ktoś?

a w czym dokładnie jest problem?
stworzyć/przeiterować tablicę?

0

srand wołamy tylko RAZ [!!!] [!!!] [!!!]

int los(void){
        return rand()<19661;  //RAND_MAX*0.6
}

int main() {
        int T[X];
        srand(time(NULL));    //   srand wołamy tylko RAZ  [!!!] 
        ...
        for(int i=0; i<X; i++)
                T[i]=los();
        ...
0

dziękuje za pomoc ale teraz mam kolejny problem mam tablice tab_a wypełnioną losowo jedynkami i zerami oraz tablice tab_b z wartościami skopiowanymi z tablicy a. Tylko że u mnie komórki w tablicy mają zależeć od wartości w tablicy a,każda komórka w tablicy a ma 8sąsiadów(z wyjątkiem brzegowych),są to komórki leżąca nad,pod, w lewo,w prawo i na skos od danej komórki.Wartość b[i,j] zależy od sumy wartości sąsiadów a[i,j] powiększonej o wartość samej komórki a[i,j].Suma ta należy do przedziału <0,9>

zasada wygląda tak : jeśli suma >=5 to b[i,j]=1 inaczej [b,j]=0 ,mam obliczyć wartości tablicy b i wydrukować je

na razie mam takie coś
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int losowanie(void);

int main(void)
{

int tab_b[50][50],tab_a[50][50];
int i,j,a,b;
srand (time(NULL));

       printf("Tablica A\n\n");
       for(i=0;i<50;i++)
       {
                        for(j=0;j<50;j++)
                        {
                        printf("%d",tab_a[i][j]=losowanie());
                        }
                        printf("\n");
       }
       printf("\n");

       printf("Tablica B\n");

       for(int a=0;a<50;a++)
       {
               for(int b=0;b<50;b++)
               {

               tab_b[a][b] = tab_a[a][b];
               printf("%d", tab_b[a][b]);
               }
               printf("\n");
        }
            getchar();
        }

int losowanie()
{
if ((rand() % 10) < 6)
return 1;
else
return 0;
}

wiem jak sie poruszac po tablicy
gora = tab_a[a+1][b];
dol = tab_a[a-1][b];
ukos_gora = tab_a[a+1][b+1];
ukos_dol = tab_a[a-1][b-1];
lewo = tab_a[a]b-1];
prawo = tab_a[a][b+1];

mam też warunki na komórki brzegowe
boolean isLeft = (j>0) ;
boolean isRight = (j>49);
boolean isUp = (i>0);
boolean isDowo = (i<50);

ale nie wiem jak to zastosować żeby stworzyć jedną funkcje drukującą tablice z sumowanymi sąsiadami

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0