tablice wielowymiarowe

Odpowiedz Nowy wątek
2017-03-01 14:44
0

Witam,
wydaje mi się, że mam spore problemy z rozumieniem jak dokładnie działa to wszystko. Przyjmijmy, że mamy tablicę wielowymiarową prostokątną, powiedzmy, że o wielkości [10] [8].
I tutaj mam pytanie. Jak odnieść się do:
-miejsc w tablicy poniżej przekątnej i samej przekątnej (jeśli chodzi o samą przekątną to pewnie wystarczy, że [x] równa się [y].

  • konkretnych wierszy i kolumn.
    Dziękuję z góry i pozdrawiam!:)
    EDIT
    Chociaż jeśli chodzi o odwołanie się do konkretnych wierszy i kolumn, to wystarczy [0] dla pierwszego wiersza.
edytowany 1x, ostatnio: breedovsky, 2017-03-01 14:47

Pozostało 580 znaków

2017-03-01 14:51
2

[jak odnieść się do] miejsc w tablicy poniżej przekątnej i samej przekątnej

Na sam początek wypadałoby sobie zdefiniować, czym jest tak właściwie przekątna w tablicy o różnych wymiarach ;-)

[jak odnieść się do] konkretnych wierszy i kolumn.

tablica[n][m]


edytowany 1x, ostatnio: Patryk27, 2017-03-01 14:52

Pozostało 580 znaków

2017-03-01 15:01
0

Hm.
To powiedzmy, że mam prostą tablicę kwadratową 5 na 5. Przekątna to tam, gdzie i==j. Idzie jakoś prosto zdefiniować elementy tablicy pod tą przekątną jak i nad nią? :)

Pozostało 580 znaków

2017-03-01 15:04
3

Narysuj sobie tę tablicę na kartce, oznacz przekątną i przekonaj się sam ;-)


Pozostało 580 znaków

2017-03-01 17:41
2

Możesz to zrobić w taki o to niecny sposób:


size_t tab_s = 5;
tab[ tab_s ][ tab_s ] = {0}; // ustawilismy wszystkie elementy na zero a teraz damy jedynki po przekątnej.

for( size_t i = 0; i < tab_s; i++ )  tab[i][i] = 1;

Pozostało 580 znaków

2017-03-02 12:23
0

Wracając do tematu, udało mi się napisać program liczący przekątną i co jest pod nią, ale problem jest w tym, że liczy tylko dla tablic kwadratowych. Jeśli chodzi o prostokąty, to źle wylicza przekątną. Idzie to jakoś może w łatwy sposób poprawić, by działało na dowolnych tablicach? Myślę nad jakimś fikuśnym warunkiem, ale chwilowo mam pustą głowę, a termin się zbliża.

    int main() {
int tab[5][5];
int lib = 1;
int suma = 0;
int x = 1;

for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++){
        tab[i][j] = lib;
        lib++;
    }
}
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        printf("%2d%s", tab[i][j], " ");
    }
    printf("\n");
}
for (int i = 0; i <5;i++){
    for (int j = 0; j < x; j++) {
        suma = suma + tab[i][j];

    }
    if (x != 5) {
        x++;
    }

}
printf("%d\n",suma);
return 0;

}

Pozostało 580 znaków

2017-03-02 12:49
3

zdefiniuj jak ma wyglądać przekątna w prostokątnej tablicy.

tak?
0 0 0 x
0 0 x 0
0 0 x 0
0 x 0 0
0 x 0 0
x 0 0 0
x 0 0 0

czy tak ?

0 0 0 x
0 0 0 x
0 0 x 0
0 0 x 0
0 x 0 0
0 x 0 0
x 0 0 0

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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