Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 5.00
ARTLINE-NN
1 / 1 / 0
Регистрация: 30.03.2012
Сообщений: 82
#1

Рекурсивно вычислить произведение отрицательных элементов массива - C++

31.03.2012, 15:36. Просмотров 5541. Ответов 54
Метки нет (Все метки)

Написать рекурсивную функцию возвращающую произведение отрицательных элементов массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 15:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивно вычислить произведение отрицательных элементов массива (C++):

Вычислить произведение отрицательных элементов массива - C++
Добрый день. Помогите пожалуйста решить задачу, завтра экзамен. нужно вычислить произведение отрицательных элементов массива. Использовать...

Вычислить произведение отрицательных элементов массива - C++
Приветствую вас дорогие форумчане. Прошу о помощи в изменении программы. В коде предоставленном ниже требуется заменить: рандомный подбор...

Вычислить произведение отрицательных элементов массива - C++
Помогите пожалуйста! Надо написать программу в виде функций. Но я себе это как то слабо представляю. Вод задания: В одномерном массиве,...

Вычислить произведение отрицательных элементов массива - C++
Вычислите произведение отрицательных элементов массива.

Вычислить произведение отрицательных элементов массива - C++
В одномерном массиве, состоящем из вещественных элементов, вычислить: 1.произведение отрицательных элементов массива; 2.сумму...

Вычислить произведение отрицательных элементов массива - C++
В одномерном массиве, который состоит из n действительных элементов, вычислить: а) произведение отрицательных элементов массива; б)...

54
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
31.03.2012, 18:44 #31
go, еще раз поясню, что я имел в виду под общим случаем: допустим, у тебя есть последовательность произвольных элементов. Какое число нужно возвращать при суммировании (или перемножении, не суть важно), чтобы сигнализировать о том, что эта последовательность пустая?
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:47 #32
ну не как не 1
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
31.03.2012, 18:48 #33
Dani, ты видно совсем не в теме. Может, все-таки ответишь на вопрос?

Цитата Сообщение от Nameless One Посмотреть сообщение
вот что я не понял, так это то, как связано умножение _на_ ноль с умножением нуля множителей. Может ты объяснишь?
При перемножении пустой последовательности нуля вообще нигде нет (там и умножения-то по сути нет)!
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:48 #34
когда find ничего не находит, он возвращает npos. А там или 0 или очень большое число, 2в степени
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:49 #35
Nameless One, давайте будем объективны. Не хочу не с кем спорить, но если Вы можете написать более универсальную функцию, то ее нужно и писать. В данном случае, я могу сказать о своей функции:
  • Вернет 0, если в массиве отсутствуют отрицательные элементы.
  • Иначе вернет их произведение.
1
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
31.03.2012, 18:51 #36
Цитата Сообщение от Dani Посмотреть сообщение
ну не как не 1
ну а какое тогда? И уточни, ты про суммирование или про умножение говоришь?

Цитата Сообщение от Dani Посмотреть сообщение
когда find ничего не находит, он возвращает npos. А там или 0 или очень большое число, 2в степени
при чем здесь find, а? Он у тебя уже суммировать или перемножать научился?

Добавлено через 1 минуту
go, и в чем же она «более универсальна»? И что ты в данном случае понимаешь под универсальностью?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:52 #37
Nameless One, у Вас же вернет единицу, и мы будем гадать, это отсутствие отрицательных элементов, или произведение четного числа минус единиц.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:52 #38
когда строка пустая, например,(пустое множество символов) он не найдет ничего (как не находит твоя функция произведение). В этом случае он вернет npos. npos на разных компиляторах разный, так и у вас результат, если чисел нет разный.
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
31.03.2012, 19:00 #39
Цитата Сообщение от go Посмотреть сообщение
Nameless One, у Вас же вернет единицу, и мы будем гадать, это отсутствие отрицательных элементов, или произведение четного числа минус единиц.
у меня он вернет единицу, и это будет правильно с точки зрения определения произведения чисел. А у тебя вернет ноль, и, возможно, сломает код тех людей, которые на это определение полагались, ведь в задании про это ничего не сказано.

Цитата Сообщение от Dani Посмотреть сообщение
когда строка пустая, например,(пустое множество символов) он не найдет ничего (как не находит твоя функция произведение)
какая строка, при чем здесь поиск (для справки, я знаю, как работает функция find и в чем смысл значения std::string::npos)?
Цитата Сообщение от Dani Посмотреть сообщение
npos на разных компиляторах разный, так и у вас результат, если чисел нет разный.
и для действительных чисел тоже npos, ага?

Почему бы просто не выбросить в таком случае исключение, если нас так заботит случай с пустой последовательностью?
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
31.03.2012, 19:01 #40
Цитата Сообщение от Nekto Посмотреть сообщение
Мне кажется, что особый случай надо просто отдельно описать и выводить сообщение об этом
Вот это по-моему самое правильное решение.
0
DoZZer_
11 / 11 / 1
Регистрация: 09.08.2011
Сообщений: 53
31.03.2012, 19:01 #41
Dani,
go, Хотите усложнить код, - усложняйте, но абсолютная универсальность никогда к добру не приводила. Чем проще код и чем точнее он выполняется то, что перед ним поставлено, тем он лучше. А задачи сигнализировать о недостатке значений перед нами не стоит.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 19:03 #42
DoZZer_, если бы STL делали не универсальным - им бы никто не пользовался.
0
DoZZer_
11 / 11 / 1
Регистрация: 09.08.2011
Сообщений: 53
31.03.2012, 19:07 #43
Dani, если мы сейчас во все функции будем пихать "универсальность", то у нас получится просто КУЧА никому не нужных действий, которые "авось понадобятся в n-м варианте развития событий". И модифицировать этот код станет попросту невозможным.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 19:09 #44
DoZZer_, если будет 100 вариантов, которые надо учесть - это одно.
а 1 if - это другое
0
DoZZer_
11 / 11 / 1
Регистрация: 09.08.2011
Сообщений: 53
31.03.2012, 19:11 #45
Dani, изволю не согласиться с вами, и окончить этот холивар ))
1
31.03.2012, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 19:11
Привет! Вот еще темы с ответами:

Вычислить произведение отрицательных элементов массива - C++
Дан массив из n элементов (вещественные числа). Вычислить: 1) произведение отрицательных элементов массива 2) сумму элементов массива,...

Вычислить сумму отрицательных элементов массива и произведение элементов, расположенных между максимальным и минимальным элементами - C++
Помогите пожалуйста в одномерном массиве, состоящих из вещественных элементов вычислить: 1)сумму отрицательных элементов массива ...

Вычислить произведение отрицательных, и сумму положительных элементов массива - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение отрицательных элементов массива; 2) сумму...

В одномерном массиве вычислить сумму отрицательных элементов, произведение элементов массива между максимальным и минимальным элементами - C++
В одномерном массиве, состоящем из 25 вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение...


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

Или воспользуйтесь поиском по форуму:
45
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.