int main() { array double v[3] = {1,2,3}; int n = 3, k; array double a[n][n]; a = diagonalmatrix(v); printf("diagonal matrix a =\n%f\n", a); k = 0; a = diagonalmatrix(v,k); printf("diagonalmatrix(a, 0) =\n%f\n", a); k = 1; array double a2[n+abs(k)][n+abs(k)]; a2 = diagonalmatrix(v,k); printf("diagonalmatrix(a2, 1) =\n%f\n", a2); k = -1; array double a3[n+abs(k)][n+abs(k)]; a3 = diagonalmatrix(v,k); printf("diagonalmatrix(a3, -1) =\n%f\n", a3); }
diagonal matrix a = 1.000000 0.000000 0.000000 0.000000 2.000000 0.000000 0.000000 0.000000 3.000000 diagonalmatrix(a, 0) = 1.000000 0.000000 0.000000 0.000000 2.000000 0.000000 0.000000 0.000000 3.000000 diagonalmatrix(a2, 1) = 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 2.000000 0.000000 0.000000 0.000000 0.000000 3.000000 0.000000 0.000000 0.000000 0.000000 diagonalmatrix(a3, -1) = 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 2.000000 0.000000 0.000000 0.000000 0.000000 3.000000 0.000000