|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.01.2013, 22:58 | #1 |
Новичок
Джуниор
Регистрация: 25.12.2012
Сообщений: 2
|
Одномерные массивы и указатели
Задание:
В одномерном массиве, состоящем из N целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях. Программа работает и все считает, но нужно добавить условие для второго пункта задания что бы выводил сообщение "Невозможно посчитать произведение" когда: 1) Когда нет нулей 2) Когда в массиве один ноль 3) Когда в массиве больше двух нулей 4) когда между нулями стоит один элемент 5) когда нули рядом друг с другом Помогите дописать программу, я не пойму как эти условия добавить. Пожалуйста. Вот мой код: Код:
Последний раз редактировалось Stilet; 22.01.2013 в 11:56. |
22.01.2013, 11:12 | #2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
0) Код на форуме оформляется тегом CODE.
Цитата:
2) Массив не преобразовывается, массив просто выводится таким хитрым образом. На мой взгляд, это вполне легитимное решение задачи, но имейте в виду, что у Вашего преподавателя может быть другое мнение. 3) Для созданного динамического массива m не вызывается delete[]. В данной программе это не нужно, но я бы советовал привыкать к железному следованию правилу "если ресурс выделили, надо не забыть его освободить". 4) Вы уверены, что в случае, если между нулями стоит один элемент или нулей больше двух, произведение посчитать нельзя? Т.е. это формулировка задания, или Ваше понимание этой формулировки? Если первое, то имеет смысл завести дополнительную булеву переменную canMultiply (к слову, не очень хорошая идея называть переменные в C++ большими буквами - обычно так пишутся константы). Изначально canMultiply false, когда NOMER2 присваивается значение, она становится равной значению выражения (NOMER2 > NOMER1+2); на отдельной проверке "мы встретили третий ноль" она становится равной false; подсчёт произведения оборачивается в if(canMultiply), на else-ветке выводится сообщение "не шмогла". |
|
24.01.2013, 22:10 | #3 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
Я думаю это то что надо. Может условия витиеваты, но...
Код:
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одномерные массивы, двумерные массивы, строки | Sand093 | C++ Builder | 11 | 20.05.2012 21:48 |
указатели на массивы и массивы указателей | blacktener | Общие вопросы C/C++ | 16 | 13.06.2011 20:45 |
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент | LyaLya | Помощь студентам | 15 | 20.12.2009 14:12 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |
Указатели и массивы. (С++) | Eddie | Помощь студентам | 8 | 24.04.2009 19:48 |