|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.01.2013, 19:41 | #1 |
Пользователь
Регистрация: 01.01.2013
Сообщений: 20
|
Решение очень сложных задач на массивы
Помогите пожалуйста если сможете:
У меня тут в программе выводятся 2 ошибки, хотя алгоритм задачи правильно составлен и вроде нет никаких синтаксических ошибок. Но не знаю в чём проблема…. Условие задачи: Известно, что в городе ХХХХ самыми тёплыми являются дни с 15 июля по 15 августа Для проведения фестиваля были выбраны 7 следующих подряд дней, наиболее тёплых по данным за последние 10 лет. Составить программу для выполнения этой работы на ЭВМ. Указания к решению этой задачи: Исходные данные целесообразно представить в виде двумерного массива 10Х32. По исходному массиву далее формировать массив 10Х26, каждый элемент которого – сумма температур за каждые 7 из 32 дней. Далее нужно просуммировать столбцы этого массива и определять, для какого сотлбца сумма элементов является максимальной. Вот, что у меня получилось: Код:
Последний раз редактировалось Stilet; 26.01.2013 в 22:49. |
19.01.2013, 19:50 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Неплохая попытка.
Замечания: 1) Кросспостинг http://programmersforum.ru/showthread.php?t=223939 2) Код:
Код:
3) Неплохо бы узнать, что за ошибки (я кое-какие вижу). Обычно компилятор говорит строчку, в которой видит ошибку. 4) Используйте кнопочку Решетка # для оформления кода.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 19.01.2013 в 20:00. |
22.01.2013, 08:24 | #3 |
Пользователь
Регистрация: 01.01.2013
Сообщений: 20
|
Прошу прощения, что забыл вам сказать эти ошибки. У меня ошибки появляются на 13-14 строчках. Я всё сделал как вы говорили, и даже попробовал сумму положить внутрь вложенного цикла после условия. Но всё равно у меня ничего не вышло.
|
22.01.2013, 08:28 | #4 |
Пользователь
Регистрация: 01.01.2013
Сообщений: 20
|
Точнее не в 13-14строчках а 18-19 строчках. Вот моя переделанная прога:
Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 22.01.2013 в 08:35. |
22.01.2013, 11:01 | #5 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
22.01.2013, 12:28 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Замечания такие:
0) Форматируйте код нормально - всем будет удобнее читать. 1) Вы не читаете предыдущие замечания Третий вложенный цикл - НЕПРАВИЛЬНЫЙ. (вот этот for(j1=j; j1<7; j1++){}) 2) a[i,j] - такое обращение невозможно в C++ (правильнее выразиться, возможно, но приведет не к ожидаемому результату). 3) Вы пытаетесь сделать по заданию, но пропускаете несколько операций. Этот тройной цикл нужен только для того, чтобы сформировать из 10х32 массива 10х26 массив. Никакого поиска тут еще нельзя осуществлять.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 22.01.2013 в 12:34. |
26.01.2013, 20:24 | #7 |
Пользователь
Регистрация: 01.01.2013
Сообщений: 20
|
А не могли бы вы подсказать, какие именно операции я пропускаю и как мне сделать правильно третий вложенный цикл???
|
26.01.2013, 21:02 | #8 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Код:
Цитата:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 26.01.2013 в 21:11. |
|
26.01.2013, 22:41 | #9 |
Пользователь
Регистрация: 01.01.2013
Сообщений: 20
|
Ага, теперь мне всё ясно, но только вот почему вы инициализируете перемменую day как -1 и зачем нужна эта запись и вот эта также:
(day + 15 > 31)?(cout << day - 16 << " August - ")cout << day + 15 << " July - "); (day + 21 > 31)?(cout << day - 10 << " August" << endl)cout << day + 21 << " July" << endl); |
26.01.2013, 22:54 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
day указывает на первый день из промежутка, который должна найти программа.
Я его инициализировал -1, чтобы в цикле он сразу был заменен на 0 (чтобы не думать, чем инициализировать all_sum). Код:
day=1 - 16 и т.д. Если day+15 больше 31, то первый день расположен в следующем месяце. day+15-31=day-16 августа. Последний день промежутка day+6. Также считаем, в каком месяце он находится.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++. Решение самых сложных задач по массивам. | Javlonkhan | Помощь студентам | 5 | 01.01.2013 21:00 |
Нужно решение задач на Pascal по теме массивы | dimkom | Помощь студентам | 3 | 08.10.2012 01:12 |
VB. Решение задач на одномерные и двумерные массивы. | alex.puppeteer | Помощь студентам | 1 | 10.02.2011 07:21 |
Парни нужно решение задач на Pascal. Тема массивы. | 666WARRIOR999 | Помощь студентам | 3 | 15.12.2009 15:59 |