Kétdimenziós tömbök (mátrixok)
Értelmezés:
Valahány sorból és valahány oszlopból álló táblázatok azonos típusú elemekből.
Deklaráció (bejelentés):
alaptípus név[sorok száma][oszlopok száma];
Példa:
int m[100][20]; // 100*20 * 4B memória
A háttérben a mátrixnak annyi memória lesz fenntartva ahány eleme van (sorok száma x oszlopok száma) megszorozva egy elem méretével. A sorok pedig egymás után tárolódnak (és soron belül az elemek is).
Gondolhatunk a mátrixra tömbök tömbjeként (pl. m egy százelemű tömb, amiben 20 elemű tömbök vannak).
Használata / indexelés:
név[i][j], ahol
i a sorindex (0 <= i < sorok száma)
j az oszlopindex (0 <= j < oszlopok száma)
Példa:
int m[100][20];
esetén:
bal felső sarok: m[0][0]
jobb felső sarok: m[0][19]
bal alsó sarok: m[99][0]
jobb alsó sarok: m[99][19]
Általában ha m egy r soros és c oszlopos mátrix (int m[r][c]), akkor az elemei:
j indexű oszlop
|
V
m[0][0] m[0][1] ... m[0][j] ... m[0][c-1]
m[1][0] m[1][1] ... m[1][j] ... m[1][c-1]
..........................................
m[i][0] m[i][1] ... m[i][j] ... m[i][c-1] <- i indexű sor
..........................................
m[r-1][0] m[r-1][1] ... m[r-1][j] ... m[r-1][c-1]
Megjegyzés: a sorok és oszlopok száma egy mátrix bejelentésekor konstans érték kell legyen (mint tömböknél)
Mátrixok inicializálása:
| |
Feladat
Az input.txt fájlban adottak az n és m természetes számok (1 <= n, m <= 100), majd n x m darab egész, melyek egy kétdimenziós tömb elemei.
Olvassuk be és tároljuk, majd írjuk ki:
- az egész tömböt
- az elemek összegét
- az elemek összegét soronként (n darab érték)
- az elemek összegét oszloponként (m darab érték)
Példa
bemenet:
4 5
1 2 3 4 5
0 2 0 6 8
1 3 2 6 4
7 9 0 2 3
kimenet:
1 2 3 4 5
0 2 0 6 8
1 3 2 6 4
7 9 0 2 3
68
15 16 16 21
9 16 5 18 20
| |