21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 314
|
||||||
1 | ||||||
Граммотное пояснение.09.12.2011, 17:42. Показов 1021. Ответов 18
Метки нет (Все метки)
Здравствуйте форумчане!
Помогите пожалуйста грамотно (!) объяснить действия выполняющиеся в этом куске программы.
Добавлено через 36 секунд Только пожалуйста поподробнее. Я новичок в этом деле.
0
|
09.12.2011, 17:42 | |
Ответы с готовыми решениями:
18
"СТРОКИ"(ГРАММОТНОЕ ОФОРМЛЕНИЕ) Пояснение функции Пояснение typedef Пояснение к функциям |
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
|
|
09.12.2011, 17:53 | 2 |
max - индекс максимального эл-та в массиве ( тока я хз почему 1, а не 0. ну да ладно )
первый цикл находит максимум. второй цикл, с элемента под индексом "максимальный + 1" идет до конца и ищет минимум в оставшемся куске массива
0
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 314
|
||||||
09.12.2011, 18:35 [ТС] | 4 | |||||
fasked, почему же? Вот весь код:
0
|
09.12.2011, 18:47 | 5 | ||||||||||||||||||||
6 строка:
14 строка:
19 строка:
28 строка:
1
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 314
|
|
09.12.2011, 19:28 [ТС] | 6 |
Я ввожу температуру сам. И по условию она должна быть и в плюсовом диапазоне и минусовом.
Я понял, что выход границы я не предусмотрел, но это мне честно говоря и не нужно. Я сам ввожу данные. Помогите лучше с пояснением.
0
|
09.12.2011, 21:10 | 7 |
Написали код, и сами не поняли, что он делает? Круто.
1) Заполняется массив из файла. 2) Выводится на экран 3) Создается указатель на 1-й элемент массива. 4) Заводится переменная size. 5) Вызывается assign_a, которая возвращает первый день, когда температура была выше нуля, либо 0 6) Вызывается assign_b, в котором сначала находится положение максимального элемента, затем положение минимального. Возвращает минимальный элемент. 7) Ну и наконец вызывается assign_c, которая, якобы, подсчитывает перемену знака. На самом деле, если разобраться везде с первым элементом(а его упорно игнорируют на протяжении всей программы), то эта функция валится на тесте -1 1 -1 1, выдавая ответ 2, хотя тут 3 раза меняется знак. Приводите в божеский вид, а пока "два балла, низачот"
1
|
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
|||||||||||
10.12.2011, 09:07 | 8 | ||||||||||
Не знаю, может у меня компилятор какой то не такой, но его упорно игнорируют на протяжении всей программы, потому что он - мусор. То есть если в файле есть последовательность 1 2 3 4 5, то в массиве будет последовательность x 1 2 3 4 5. Во всяком случае у меня именно так. Отсюда, fasked, и "выход за границы массива". Попросил бы Вас написать что у вас выводят эти 2 строки:
1
|
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
||||||
10.12.2011, 11:25 | 10 | |||||
Здесь косяков вроде нет:
1
|
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
|
10.12.2011, 17:58 | 12 |
fasked, см вторую программу, там все ок. А в этом фрагменте выхода нет, так как 0 элемент был некоторым мусором, из-за ошибки заполнения массива.
0
|
10.12.2011, 18:17 | 13 | |||||
Так что правильно fasked говорит, путь даже там и нет выхода за границу, но писать так явно не стоит. Кто ж знает, что size передается на единицу меньше нормального значения?
0
|
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
|
10.12.2011, 18:21 | 14 |
Так я и не говорю, что это стилистически правильно и красиво.
0
|
10.12.2011, 18:22 | 15 | |||||
Когда в цикле переменная i станет равна индексу последнего элемента массива, чем по вашему будет следующее обращение:
0
|
10.12.2011, 18:35 | 16 |
Да я, в принципе, не про вас. В большей степени про ситуацию
Добавлено через 10 минут Кстати да, я тут тоже сглупил. В программе ТС переменная size была на 1 меньше реального количества элементов, поэтому там все хитрым образом не падало. А в программе dimcoder-а, либо не выведется последний элемент в массиве, либо выйдет за границы массива.
0
|
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
|||||||||||
10.12.2011, 18:49 | 17 | ||||||||||
Не станет:
soon, честно говоря не въехал в предложение:
0
|
10.12.2011, 19:12 | 18 | |||||
Не по теме: Поясню. Если запустить это под виндой
Касательно программы. Ну, как я уже сказал, при тесте "1" в int main n станет равной 0, и не выведется единственный элемент массива. Он выведется, если добавить в файл \n. В общем, это будет зависеть от того, как представлены данные в файле. Так что можете это замечание просто проигнорировать Касательно выхода за границу. Я не помню(смешно звучит, но это так), что именно меня смутило в вашей программе, и при повторном изучении, я не вспомнил, за что я тогда зацепился, поэтому приношу свои извинения.
0
|
10.12.2011, 19:15 | 19 |
0
|
10.12.2011, 19:15 | |
10.12.2011, 19:15 | |
Помогаю со студенческими работами здесь
19
Пояснение по синтаксису Пояснение по коду Пояснение по шаблонам2 Пояснение по шаблонам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |