13.8.4 Taulukko taulukoista
Eräs
tapa käsitellä useampiulotteisia taulukoita on
määritellä ensin rivityyppi ja sitten 1- ulotteinen taulukko
näitä rivityyppejä:
c-taul\mat2.c - matriisi parametrina riviosoittimen avulla
#include <stdio.h>
#define SARAKKEITA 3
typedef double Rivi_tyyppi[SARAKKEITA];
double alkioiden_summa(Rivi_tyyppi *mat, int riveja)
{
int i,j; double summa=0;
for (i=0; i<riveja; i++)
for (j=0; j<SARAKKEITA; j++)
summa +=mat[i][j];
return summa;
}
int main(void)
{
double s2,s3;
Rivi_tyyppi mat2[2] = { {1,2,3},{4,5,6} },
mat3[3] = { {1,0,0},{0,1,0},{0,0,1} };
s2 = alkioiden_summa(mat2,2);
s3 = alkioiden_summa(mat3,3);
printf("Summat on %5.2lf ja %5.2lf\n",s2,s3);
return 0;
}
Tosiasiassa tällä ei ole mitään eroa edelliseen vastaavaan
ohjelmamalliin verrattuna, tämä ehkä vain paremmin kuvastaa
sitä, mihin matriisin nimi on osoitin.