Знайти MAX та обчислити суму додатніх парних елементів у кожному з рядків. Розмістити у масиві РО лише від’ємні елементи.
Ответы
Відповідь:
С++ code:
#include <iostream>
#include <cstdlib>
#include <ctime>
void randarr(int **arr,const int n,const int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
arr[i][j] = rand() % 30 - 10;
}
}
}
void printarr(int **arr,const int n,const int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
std::cout << arr[i][j] << "\t";
}
std::cout << std::endl;
}
std::cout << std::endl;
}
void printarr(int *arr,const int size){
for(int i = 0; i < size; i++){
std::cout << arr[i] << "\t";
}
std::cout << std::endl;
}
void MAX(int **arr,const int n, const int m){
for(int i = 0; i < n; i++){
int sum = 0;
for(int j = 0; j < m; j++){
if(arr[i][j] > 0){
sum += arr[i][j];
}
}
std::cout << "Сума додатнiх елементiв в " << i + 1 << " рядку = " << sum << std::endl;
}
}
int count_diff(int **arr,const int n, const int m){
int diff_size = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(arr[i][j] < 0){
diff_size++;
}
}
}
return diff_size;
}
int* diff_arr(int **arr,const int n,const int m){
int *PO = new int[count_diff(arr,n,m)];
int index = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(arr[i][j] < 0){
PO[index] = arr[i][j]; \
index++;
}
}
}
return PO;
}
int main(){
srand(time(NULL));
setlocale(LC_ALL, "Ukrainian");
int n,m;
std::cout << "Введiть кiлькiсть рядкiв: ";
std::cin >> n;
std::cout << "Введiть кiлькiсть стовпцiв: ";
std::cin >> m;
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);
MAX(arr,n,m);
int *diff = diff_arr(arr,n,m);
int size = count_diff(arr,n,m);
printarr(diff,size);
for(int i = 0; i < n; i++){
delete[] arr[i];
}
delete[] arr;
delete[] diff;
return 0;
}
Пояснення: