Предмет: Информатика, автор: alexanderlox

Обчислити вектор середньоарифметичних парних елеменів кожного рядка матриці на с++

Ответы

Автор ответа: asilvejstruk
1

#include <iostream>

using namespace std;

void randarr(int **arr, int n, int m){

for(int i = 0; i < n; i++){

for(int j = 0; j < m; j++){

 cin >> arr[i][j];

}

}

}

void printarr(int **arr , int n, int m){

for(int i = 0; i < n; i++){

for(int j = 0; j < m; j++){

 cout << arr[i][j] << "\t";

}

cout << endl;

}

}

void expression(int **arr,int n, int m){

int sum = 0;

float vector[5];

for(int i = 0;i < n; i++){

sum = 0;

for(int j = 0; j < m; j++){

 if(j % 2 != 0){

  sum += arr[i][j];

 }

 vector[i] = sum/2.;

}

}

for(int k = 0; k < 5; k++){

cout << vector[k] << " ";

}

}              

int main(){

int n = 5, m = 4;

int **arr = new int *[n];

for (int i = 0; i < n; i++)

      arr[i]=new int[m];

  randarr(arr,n,m);

printarr(arr,n,m);

cout << "Вектор среднеарифметических парных елементов: ";

expression(arr,n,m);

      for (int i = 0; i < n; i++)

   delete[]arr[i];

  delete[]arr;

return 0;

}

Автор ответа: Andrey36789
1

#include <iostream>

#include <vector>

using namespace std;

int main() {

   int n, m;

   cin >> n >> m; // Вводимо розміри матриці.

   vector<vector<int>> matrix(n, vector<int>(m)); // Створюємо двовимірний вектор.

   for (int i = 0; i < n; i++) { // Заповнюємо матрицю.

       for (int j = 0; j < m; j++) {

           cin >> matrix[i][j];

       }

   }

   vector<double> res(n); // Створюємо вектор, який буде містити середньоарифметичну суму.

   for (int i = 0; i < n; i++) { // Обчислення середньоарифметичного.

       double sum = 0; // Заводимо змінну, яка буде мiстiti суму.

       for (int j = 0; j < m - 1; j += 2) { // +2 - якби +1, то "пропускала" 1-й елемент.  

           sum += matrix[i][j] + matrix[i][j + 1]; // Cумування 2-x (0-1, 2-3...) елемeнтiв.  

           if (j == m - 2 && m % 2 != 0) { // Jaкbi ostatok z divizii != 0, to "дoдaвaлa" ostatok.  

               sum += matrix[i][m - 1];  

           }  

       }  

       res[i] = sum / (m / 2 + m % 2); // Cepxodno divizii na 2 + ostatok z divizii != 0.  

   }  

   for (auto x : res) cout << x << " "; // Wyvod rezultatu.  

   return 0;  

}

Похожие вопросы