Moniulotteisessa taulukossa jokaista ulottuvuutta vastaa yksi kokomäärittely. Siten kaksiulotteisessa taulukossa eli matriisissa on peräkkäin kaksi hakasuluissa annettua taulukon kokoa:
double matriisi[5][4];
Näin määritellyssä matriisissa on 5 riviä ja 4 saraketta. Huomaa, että (toisin kuin joissain muissa ohjelmointikielissä) kaksiulotteista taulukkoa ei voi määritellä esim.
double matriisi[5,4]; /* VÄÄRIN! */
Vastaavalla tavalla voitaisiin määritellä 3-, 4-, jne. -ulotteisia taulukoita, mutta niitä tarvitaan melko harvoin.
Seuraava esimerkkiohjelma täyttää kaksiulotteisen taulukon kokonaisluvuilla. Taulukon koko on MMAX*NMAX. Ohjelma kysyy käyttäjältä taulukkoon tulevat luvut ja lopuksi tulostaa taulukon alkiot matriisimuotoisena.
/* *********************************************************
MATRIISI.CPP
Kaksiulotteisen taulukon käsittelyn harjoittelua.
Lukee taulukkoon kokonaislukuja ja tulostaa ne näytölle.
********************************************************* */
#include <iostream.h>
#define MMAX 5 // taulukon rivien maksimilukumäärä
#define NMAX 5 // taulukon sarakkeiden maksimilukumäärä
int main(void)
{
int taulu[MMAX][NMAX]; // kokonaislukutaulukko (matriisi)
int i, j, m, n;
do {
cout << "Anna rivien lukumäärä (1-" << MMAX << ") > ";
cin >> m;
} while (m < 1 || m > MMAX);
do {
cout << "Anna sarakkeiden lukumäärä (1-" << NMAX << ") > ";
cin >> n;
} while (n < 1 || n > NMAX);
for (i=0; i<m; i++) { // käydään läpi rivit 1...m
cout << "Anna " << n << " kokonaislukua > ";
for (j=0; j<n; j++)
cin >> taulu[i][j];
}
cout << "Annoit luvut:\n";
for (i=0; i<m; i++) { // käydään läpi rivit 1...m
for (j=0; j<n; j++)
cout << "\t" << taulu[i][j]; // käytetään tabulaattoria
cout << endl; // kunkin rivin päätteeksi rivinvaihto
}
return 0;
}
Esimerkkiajo:
Anna rivien lukumäärä (1-5) > 3
Anna sarakkeiden lukumäärä (1-5) > 4
Anna 4 kokonaislukua > 3 1 90 32
Anna 4 kokonaislukua > -2 4 -34 222
Anna 4 kokonaislukua > 45 2 4 4
Annoit luvut:
3 1 90 32
-2 4 -34 222
45 2 4 4