0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 22
|
|||||||||||
1 | |||||||||||
Некорректная работа циклов, обходящих массивы28.05.2015, 18:40. Показов 1015. Ответов 11
Метки нет Все метки)
(
Здравствуйте, столкнулся с тем что цикл подставляет не верное значение:
Почему я решил что проблема именно здесь? Да потому что если после цикла задать значение "вручную", то значение задается корректно:
Примечание: код находится в Form1.h Переменные Amount, Plus, Cost представляют собой массивы типа int. Проблема почему-то всегда в первом и иногда в последнем члене массива (хотя они находятся в цикли на "равных условиях"). Пожалуйста, скажите в чем может быть проблема.
0
|
|
28.05.2015, 18:40 | |
Ответы с готовыми решениями:
11
Работа с файлом (корректный код, некорректная работа программы)
Работа с INI: некорректная работа пользовательской функции
|
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 22
|
||||||||||||||||
28.05.2015, 18:46 [ТС] | 2 | |||||||||||||||
Хм, я только заметил, что вместе с Cost[0] изменился и Plus[5]:
Прототипы методов класса:
0
|
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 22
|
|
28.05.2015, 19:27 [ТС] | 3 |
Прикладываю проект.
0
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
|
28.05.2015, 20:25 | 4 |
Выход за границу массива. Цикл до шести, а массивы на 5 элементов
0
|
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 22
|
|
28.05.2015, 20:48 [ТС] | 5 |
Добавлено через 7 минут Если я правильно понимаю цикл подставляет значения следующим образом: i = 0 ; i = 1 ; i = 2 ; i = 3 ; i = 4 ; i = 5 ;
0
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
|
28.05.2015, 20:59 | 6 |
0
|
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 22
|
|
28.05.2015, 21:05 [ТС] | 7 |
0 - тоже цифра, в учебнике написано, что массив по умолчанию начинается с "0" = \
0
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
|
28.05.2015, 21:11 | 8 |
при чем тут массив с нуля и цикл ?
Массив у вас на пять элементов, а цикл до шести и всЁ.
0
|
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 22
|
||||||
28.05.2015, 21:18 [ТС] | 9 | |||||
Давайте посчитаем элементы массива int Amount[5]
0 - первый элемент 1 - второй 2 - третий 3 - четвертый 4 - пятый 5 - шестой. Разберем цикл:
2шаг: i = 1 ; прибавим к i , 1 3шаг: i = 2 ; прибавим к i , 1 4шаг: i = 3 ; прибавим к i , 1 5шаг: i = 4 ; прибавим к i , 1 6шаг: i = 5 , стоп т.к. i уже не <= 5 Или я что-то не так понял ?
0
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
|
28.05.2015, 21:25 | 10 |
![]() Решение
1
|
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 22
|
|
28.05.2015, 21:27 [ТС] | 11 |
Хм, я могу быть уверен в том что цифра 5 указывает не на номер последнего элемента массива, а на количество элементов?
Спасибо, помогло, наверное я просто невнимательно читал учебник.
0
|
Администратор
![]() |
|
29.05.2015, 19:26 | 12 |
Правильно написано. А ещё должно быть написано, что цифра в объявлении массива означает количество элементов в массиве, а не максимальный индекс.
0 - первый элемент 1 - второй 2 - третий 3 - четвертый 4 - пятый Т.е. макс. индекс - 4.
1
|
29.05.2015, 19:26 | |
29.05.2015, 19:26 | |
Помогаю со студенческими работами здесь
12
Программирование циклов с параметром. Одномерные массивы Избавиться от циклов через массивы ячеек и cellfunc Некорректная работа
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |