#include #include /* Polja varijabilne duljine (C99). Euklidska norma matrice --- ispravno. */ double E_norma(int m, int n, int lda, double A[][lda]) { double suma = 0.0; int i, j; for (i = 0; i < m; ++i) for (j = 0; j < n; ++j) suma += A[i][j] * A[i][j]; return sqrt(suma); } int main(void) { int lda = 10; double M[lda][lda]; /* Napomena: Matrica M se NE smije inicijalizirati u deklaraciji, jer je polje varijabilne duljine. Zato petljama postavljamo cijeli M na nul-matricu. */ int i, j; for (i = 0; i < lda; ++i) for (j = 0; j < lda; ++j) M[i][j] = 0.0; /* Sad postavljamo matricu reda 2 u gornjem lijevom kutu od M. */ M[0][0] = 1.0; M[0][1] = 2.0; M[1][0] = 3.0; M[1][1] = 4.0; printf(" E_norma matrice = %g\n", E_norma(2, 2, lda, M)); return 0; }