| Код | #include <stdio.h> #include <stdlib.h>
int getElement(int* matrix, unsigned int row, unsigned int column, unsigned int n) { return matrix[row * n + column]; }
void setElement(int* matrix, unsigned int row, unsigned int column, unsigned int n, int value) { matrix[row * n + column] = value; }
void setMatrix(int* matrix, const int n) { unsigned int row, column; int value; for (row = 0; row < n; ++row) for (column = 0; column < n; ++column) { printf("a(%i, %i)=", row + 1, column + 1); scanf("%i", &value); setElement(matrix, row, column, n, value); } }
void printMatrix(int* matrix, const unsigned int n) { unsigned int row, column; int value; printf("A(%i, %i):\n", n, n); for (row = 0; row < n; ++row) { for (column = 0; column < n; ++column) { value = getElement(matrix, row, column, n); printf("a(%i,%i)=%i ", row + 1, column + 1, value); } printf("\n"); } }
void sumColumns(int* matrix, const unsigned int n) { unsigned int row, column; int value = 0; printf("task1: summ values in columns:\n"); for (column = 0; column < n; ++column) { for (row = 0; row < n; ++row) value = value + getElement(matrix, row, column, n); printf("%i ", value); value = 0; } printf("\n"); }
void task2(int* matrix, const unsigned int n) { printf("task 2\n"); unsigned int row, column; int value = 0; for (row = 0; row < n; ++row) { for (column = 0; column < n; ++column) value = value + getElement(matrix, row, column, n); value = value / n; setElement(matrix, row, n - row - 1, n, value); value = 0; } printMatrix(matrix, n); }
int main (void) { unsigned int n; int* a;
printf("N="); scanf("%i", &n); a = (int*)malloc(n * n * sizeof(int));
setMatrix(a, n); printMatrix(a, n); sumColumns(a, n);
task2(a, n);
free(a); return 0; } |
|