Вычислить вектор среднеарифметических парных элементов каждой строки целочисленной матрицы 5x4 на с++ при помощи функции, пожалуйста помогите, ума не приложу, что делать нужно
nazikmuz
У нас массив при каждом запуске разный,этот код берёт парный елемент каждой строки,добавляет его в переменную sum и при конце строки массива присваивает к массиву вектору sum деленную на 2
asilvejstruk
Благодарю, только мне нужен пользовательский ввод матрици
Answers & Comments
Вектор это по сути одномерный массив
Что вам нужно сделать?
Пробегаете каждую строку массива (матрицы) и парные елементы суммируете в какую нибудь переменную и записываете в новый одномерный массив sum/2
#include <iostream>
#include <cstdlib>
#include <time.h>
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++){
arr[i][j] = rand() % 10 + 1;
}
}
}
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(){
srand(time(NULL));
setlocale(LC_ALL , "Rus");
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;
}
Пояснення: