#include <iostream>
using namespace std;

void processMatrix(double matrix[][100], int N) {
    double totalPositiveSum = 0;
    int positiveCount = 0;

    // Найти среднее арифметическое положительных элементов
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            if (matrix[i][j] > 0) {
                totalPositiveSum += matrix[i][j];
                positiveCount++;
            }
        }
    }

    double averagePositive = (positiveCount > 0) ? totalPositiveSum / positiveCount : 0;
    cout << "Среднее арифметическое положительных элементов: " << averagePositive << endl;

    // Преобразовать массив
    for (int j = 0; j < N; j++) {
        double rowPositiveSum = 0;
        for (int i = 0; i < N; i++) {
            if (matrix[i][j] > 0) {
                rowPositiveSum += matrix[i][j];
            }
        }

        if (rowPositiveSum > 0) {
            for (int i = 0; i < N; i++) {
                matrix[i][j] /= rowPositiveSum;
            }
        }
    }
}

int main() {
    int N;
    cout << "Введите размер матриц (N): ";
    cin >> N;

    if (N > 100) {
        cout << "Размер матрицы превышает допустимое значение (100)." << endl;
        return 1;
    }

    double matrix1[100][100] = {0};
    double matrix2[100][100] = {0};
    double matrix3[100][100] = {0};

    double* matrices[3] = {(double*)matrix1, (double*)matrix2, (double*)matrix3};

    for (int k = 0; k < 3; k++) {
        cout << "Введите элементы матрицы " << k + 1 << " (" << N << "x" << N << "):" << endl;
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                cin >> matrices[k][i * N + j];
            }
        }

        processMatrix((double(*)[100])matrices[k], N);

        cout << "Преобразованная матрица " << k + 1 << ":" << endl;
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                cout << matrices[k][i * N + j] << " ";
            }
            cout << endl;
        }
    }

    return 0;
}
