Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement