дан двумерный массив A, размером n'n. Найти произведение элементов массива, больших заданого числа alfa и меньших заданого числа betta
C++
Хотя бы алгоритм
Ответы
int arr[n][n]; или std::vector<std::vector<int>> arr;
заполняем массив, чтото вроде
for(int i = 0; i<n; ++i) {
for(int j = 0; j<n; ++j) {
cin >> arr[i][j]; или arr[i][j] = rand(); rand() в <cstdlib> перед этим srand(любое число)
}
}
далее создаём 2 массива odd и even
std::vector<int> odd и even;
Допиливаем цикл сверху чтобы 1 - выводил массив 2 - добавлял элементы в odd/even
for{ for {
if(arr[i][j]%2==0) {
even.push_back(arr[i][j]);
} else {
odd.push_back(arr[i][j])
}
}}
далее немножечко формулировку не понял. надо найти произведение соответствующих элементов или сумму всех odd * сумма всех even.
будем с суммой. int oddSum = 0; и int evenSum = 0;
допиливаем тот if else
if(arr[i][j]%2==0) {
even.push_back(arr[i][j]);
evenSum+=arr[i][j];
} else {
odd.push_back(arr[i][j]);
oddSum+=arr[i][j];
}
}}
cout << oddSum*evenSum;
сейчас понял, что немножно ошибся, и там надо проверять не на кратность двум а по условию. вот допиленное решение
for{ for {
...
if(arr[i][j]>alfa) {
even.push_back(arr[i][j]);
} if(arr[i][j]<betta) {
odd.push_back(arr[i][j])
}
}} cout << oddSum*evenSum;