Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 5
1

Найти произведение положительных элементов массива, используя оператор ветвления if else в цикле for

04.02.2016, 23:10. Показов 670. Ответов 2

Author24 — интернет-сервис помощи студентам
Подскажите, пожалуйста. Не получается корректно вставить в цикл for оператор ветвления else к задачке "Найти произведение положительных элементов массива". Речь об одномерном динамическом масиве вещественных чисел.

На этом же форуме есть ветка с ответом на данную задачу, и она здесь:
Вычислить произведение положительных элементов массива

В моём коде решение выглядит также:

C++
1
2
3
4
5
6
7
float prod = 1;
    for (int i = 0; i < n; i++)
        if (arr[i] > 0)
        {   
            prod*= arr[i];
        }
            cout << endl << "Product of positive numbers of the array: " << prod << endl;
Но это решение задачи не полноценное, нужно ещё одно условие, когда все введённые пользователем числа - отрицательные.

Как корректно дополнить if оператором else c выводом
C++
1
cout << endl << "No positive numbers" << endl;
, чтобы сработало второе условие? Перепробовал уже вроде бы всё, что можно. И фигурные скобки менял по разному, но компилятор всё равно ругался и подчёркивал else. И break пытался использовать (что на половину помогло: при всех отрицательных выводил условие else, но при положительных - выводил ошибочно - оба).

Что я делал не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2016, 23:10
Ответы с готовыми решениями:

Найти отдельно произведение положительных элементов и произведение отрицательных элементов массива
Ввести массив. Найти отдельно произведение положительных элементов и произведение отрицательных...

Найти произведение четных элементов массива и частное положительных нечетных элементов массива
Найти произведение четных элементов массива и частное положительных нечетных элементов массива....

Найти произведение положительных элементов массива
Обработка массивов. Создать вспомогательный класс . Класс содержит методы,которые выполняют...

Найти произведение положительных элементов массива
Составить программу для вычисления ...

2
34 / 34 / 36
Регистрация: 22.05.2015
Сообщений: 146
05.02.2016, 00:58 2
Ну есть разные варианты решения.
Самый очевидный - это проверить, есть ли хотя бы одно положительное значение. Просто ввести переменную типа bool, и если был произведён вход в Ваш if - присвоить переменной значение true. Ну и после вычислений, в зависимости от результата принимать решение о выводе сообщений.

Типа такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool positive = false;
float prod = 1;
    for (int i = 0; i < n; i++)
        if (arr[i] > 0)
        {   
            prod *= arr[i];
            positive = true;
        }
 
        if(positive)
            cout << endl << "Product of positive numbers of the array: " << prod << endl;
        else
            cout << endl << "No positive numbers" << endl;
1
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 5
05.02.2016, 01:20  [ТС] 3
C bool`ом всё оказалось тривиально просто, прога верно заработала! Благодарю!!!
0
05.02.2016, 01:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2016, 01:20
Помогаю со студенческими работами здесь

Найти произведение положительных элементов массива.
а) Произведение положительных элементов массива. б) Сумму элементов массива, расположенных до...

Найти произведение положительных элементов массива
Есть массив а . Найти произведение положительных элементов массива. Самым легким способом.

Найти произведение положительных элементов массива
Найти произведение положительных элементов массива A(N,M).

Найти произведение положительных элементов массива
Дано масив з 16 елементів дійсних чисел. Визначити добуток позитивних елементів та вивести відповідь


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru