Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- typedef int elem; //тип элемента массива
- typedef elem *arr; //тип "указатель на elem"
- void input_array(arr A, int size);
- int find_max(arr A, int size);
- int multiply(arr A, int size, int min, int &count);
- int main() {
- setlocale(0, "");
- int size; //размер массива
- int count = 0;
- cout << " Укажите размер массива n: ";
- cin >> size; //ввод размера массива
- arr A = new elem[size]; //выделение памяти под массив
- input_array(A, size); //ввод массива.
- int imax = find_max(A, size);
- cout << " Произведение положительных значений элементов массива, " << endl;
- cout << " лежащих между элементом с индексом " << imax;
- cout << " (с максимальным " << endl << " по абсолютной величине значением)";
- cout << " и элементом " << endl << " с индексом " << size / 2;
- cout << " (n/2), равно: " << multiply(A, size, imax, count) << endl;
- cout << " Кол-во подходящих значений: " << count << endl;
- delete[] A; //освобождение динамической памяти
- system("pause");
- return 0;
- }
- //ввод массива
- void input_array(arr A, int size) {
- cout << " Введите элементы массива: ";
- for (int i = 0; i < size; i++)
- cin >> A[i];
- }
- //поиск индекса максимального по модулю значения
- int find_max(arr A, int size) {
- int max = fabs(A[0]);
- int imax = 0;
- for (int i = 1; i < size; i++)
- if (fabs(A[i]) > max) {
- max = fabs(A[i]);
- imax = i;
- }
- return imax;
- }
- //умножение подходящих значений
- int multiply(arr A, int size, int imax, int &count) {
- int res = 1;
- if (imax == size / 2)
- return 0;
- else if (imax < size / 2) {
- for (int i = imax + 1; i < size / 2; i++)
- if (A[i] > 0) {
- res *= A[i];
- count++;
- }
- }
- else {
- for (int i = imax - 1; i > size / 2; i--)
- if (A[i] > 0) {
- res *= A[i];
- count++;
- }
- }
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement