Advertisement
RenSafaray

Untitled

Mar 3rd, 2025
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void processMatrix(double matrix[][100], int N) {
  5.     double totalPositiveSum = 0;
  6.     int positiveCount = 0;
  7.  
  8.     // Найти среднее арифметическое положительных элементов
  9.     for (int i = 0; i < N; i++) {
  10.         for (int j = 0; j < N; j++) {
  11.             if (matrix[i][j] > 0) {
  12.                 totalPositiveSum += matrix[i][j];
  13.                 positiveCount++;
  14.             }
  15.         }
  16.     }
  17.  
  18.     double averagePositive = (positiveCount > 0) ? totalPositiveSum / positiveCount : 0;
  19.     cout << "Среднее арифметическое положительных элементов: " << averagePositive << endl;
  20.  
  21.     // Преобразовать массив
  22.     for (int j = 0; j < N; j++) {
  23.         double rowPositiveSum = 0;
  24.         for (int i = 0; i < N; i++) {
  25.             if (matrix[i][j] > 0) {
  26.                 rowPositiveSum += matrix[i][j];
  27.             }
  28.         }
  29.  
  30.         if (rowPositiveSum > 0) {
  31.             for (int i = 0; i < N; i++) {
  32.                 matrix[i][j] /= rowPositiveSum;
  33.             }
  34.         }
  35.     }
  36. }
  37.  
  38. int main() {
  39.     int N;
  40.     cout << "Введите размер матриц (N): ";
  41.     cin >> N;
  42.  
  43.     if (N > 100) {
  44.         cout << "Размер матрицы превышает допустимое значение (100)." << endl;
  45.         return 1;
  46.     }
  47.  
  48.     double matrix1[100][100] = {0};
  49.     double matrix2[100][100] = {0};
  50.     double matrix3[100][100] = {0};
  51.  
  52.     double* matrices[3] = {(double*)matrix1, (double*)matrix2, (double*)matrix3};
  53.  
  54.     for (int k = 0; k < 3; k++) {
  55.         cout << "Введите элементы матрицы " << k + 1 << " (" << N << "x" << N << "):" << endl;
  56.         for (int i = 0; i < N; i++) {
  57.             for (int j = 0; j < N; j++) {
  58.                 cin >> matrices[k][i * N + j];
  59.             }
  60.         }
  61.  
  62.         processMatrix((double(*)[100])matrices[k], N);
  63.  
  64.         cout << "Преобразованная матрица " << k + 1 << ":" << endl;
  65.         for (int i = 0; i < N; i++) {
  66.             for (int j = 0; j < N; j++) {
  67.                 cout << matrices[k][i * N + j] << " ";
  68.             }
  69.             cout << endl;
  70.         }
  71.     }
  72.  
  73.     return 0;
  74. }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement