|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.10.2017, 19:01 | #1 |
Пользователь
Регистрация: 29.10.2016
Сообщений: 11
|
Помогите пожалуйста ;) C++
В одномерном массиве, состоящем из n целочисленных элементов, вычислить:
• произведение элементов массива с четными номерами; • сумму элементов массива, расположенных между первым и последним нулевыми элементами. Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные нулю, считать положительными). *Вот что-то сделал, есть ошибки* Код:
Последний раз редактировалось Fredom; 25.10.2017 в 19:16. |
25.10.2017, 20:17 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Я по поводу пункта: "сумму элементов массива, расположенных между первым и последним нулевыми элементами.", который (перед расчётом суммы требует) сначала найти "индексы первого и последнего 0-евого элемента".
Скажи, ты можешь это найти? А ещё вопрос: у тебя все элементы генерируются положительными, а следующий пункт твоего задания предполагает наличие отрицательных элементов массива?... |
25.10.2017, 20:49 | #3 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Я вижу вот такое решение задачи:
Код:
Но осталось доделать последний пункт: "Преобразовать массив таким образом, чтобы..." Что думаешь по этому поводу? Последний раз редактировалось ura_111; 25.10.2017 в 20:52. |
25.10.2017, 20:56 | #4 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Кстате, а если будет только один 0-ль (или вообще их не будет), то как программа должна реагировать на это?
Ведь сейчас я просто зануляю несколько элементов массива, а вообще то должно быть случайно-сгенерированые элементы... Код:
|
25.10.2017, 21:07 | #5 |
Пользователь
Регистрация: 29.10.2016
Сообщений: 11
|
Задача стоит в такой позиции, допустим arr[1] =0 и arr[4]=0 и программа должна посчитать сумму элементов между ними т.е arr[2] + arr[3]. Нельзя ли просто два элемента поставить равными нулю? Почему вы написали 4? Ну и это понятно, что программа должна реагировать на то, если в массиве нет нулевых элементов (но с этим уже заморачиваться не хочется, да и это не обязательно). Главное чтобы было правильное условие.
Последний раз редактировалось Fredom; 25.10.2017 в 21:11. |
25.10.2017, 21:15 | #6 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Первое. Мне кажется, что пользователь должен определяться с "n". Но это предполагает динамическое распределение памяти, а не как сейчас - статическое.
Второе. "...допустим arr[1] =0 и arr[4]=0..." - ничего допускать не надо вообще. Генерацией самих значений должно заниматься "rand()". По этой логике искусственно занулять элементы - это ошибка. Т.е. на начальном периуде (отладка программы) это допустимо, но в окончательной версии программы эти строчки должны быть удалены полностью. Третье. Почему именно 4-ри значения... А почему бы и нет? Ведь значения массива будут определяться случайно, что предполагает (пусть даже с небольшой вероятностью) что все элементы массива будут равны = 0-лю. |
25.10.2017, 21:19 | #7 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Кстате, ты видел что я изменил твою генерацию
Код:
Всё, начинай думать над задачей №3: "Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные нулю, считать положительными)." |
25.10.2017, 21:32 | #8 |
Пользователь
Регистрация: 29.10.2016
Сообщений: 11
|
Что думаете об этом?
Код:
Последний раз редактировалось Fredom; 25.10.2017 в 21:36. |
25.10.2017, 23:03 | #9 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Расскажи как работает код.
|
25.10.2017, 23:27 | #10 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Я пока вижу:
0.jpg 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg Херня какая-то получилось. А ещё, я не уверен - просто предполагаю, корректно ли запись "arr[n]"? Дело в том, что нумерация массива идёт с 0-ля и если считать с "n", то в массиве (вроде) будет "n+1" элемент??? p.s.: а ну, проверь это. Просто создай массив размерностью "n" и попробуй что-нибудь записать в элемент "n+1". А потом выведи на экран... Хотя... положительные числа же программа сгруппировала слево, - а это половина задания... вот если отрицательные числа не в хвост массива "arr" пихать, а в какай-то промежуточный массив "brr"... а потом можно будет из "brr" переместить элементы снова в "arr" (расположив их после положительных)... Единственное, как это реализовать "после положительных"? Надо считать количество "kol_polochitelnuch", которое и будет индексом массива "arr" , после которого вставляем отрицательные числа из "brr". Пиши, что думаешь. Последний раз редактировалось ura_111; 26.10.2017 в 02:02. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно | Сергей Человек | Фриланс | 3 | 06.07.2009 19:30 |
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! | VisTBacK | Помощь студентам | 6 | 19.09.2008 13:44 |