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