Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

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.


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys