int main() { array double a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; array double a2[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 4, 4, 4}; int n = min(4,3), k = 1; array double d[n], d2[n-(abs(k))]; d = diagonal(a); printf("diagonal(a) = %f\n", d); d = diagonal(a2); printf("diagonal(a2) = %f\n", d); d2 = diagonal(a, k); printf("diagonal(a, 1) = %f\n", d2); d2 = diagonal(a2, k); printf("diagonal(a2, 1) = %f\n", d2); k = -1; d2 = diagonal(a, k); printf("diagonal(a, -1) = %f\n", d2); d2 = diagonal(a2, k); printf("diagonal(a2, -1) = %f\n", d2); }
diagonal(a) = 1.000000 5.000000 9.000000 diagonal(a2) = 1.000000 5.000000 9.000000 diagonal(a, 1) = 2.000000 6.000000 diagonal(a2, 1) = 2.000000 6.000000 diagonal(a, -1) = 4.000000 8.000000 diagonal(a2, -1) = 4.000000 8.000000