![]() |
|
Модераторы: bsa |
![]()
|
|
| Zverushka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 28.5.2011 Репутация: нет Всего: нет |
Здрасте, есть код который про логике должен работать, но если дело доходит до компилятора то все мои представления о массиве переворачиваются
Нажали кнопку 1 перешла правее |0|1|0| |0|0|0| |0|0|0| Заранее спасибо. Это сообщение отредактировал(а) Zverushka - 5.1.2012, 11:58 |
|||
|
||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
не совсем понял, что вы пыаетесь сделать, но все изменения при нажатии клавиши d, происходящие в массиве идут под откос из-за
|
|||
|
||||
| Zverushka |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 28.5.2011 Репутация: нет Всего: нет |
Ведь эта строка инициализирует весь массив 0 |
||||
|
|||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
тогда уж используй отдельный цикл для обнуления массива
вот возьми i=0 j=0 сначала m[0][0]=0; на этой итерации a прибавилось значит m[0][1]=1; а на следующей итерации цикла m[0][1]=0; Добавлено @ 13:36 научитесь пользоваться отладчиком Это сообщение отредактировал(а) redwhite90 - 5.1.2012, 19:37 |
|||
|
||||
| Zverushka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 28.5.2011 Репутация: нет Всего: нет |
Попробуйте запустить мой код и тогда вы поймете в чем проблема |
|||
|
||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
отредактировал свой пост.перечитайте
|
|||
|
||||
| feodorv |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Был дан очень дельный совет:
Однако и без отладчика видно что значение переменной a зашкалит и выйдет за пределы массива. Не хотите отладчик, хотя бы ставьте вывод ключевых переменных:
И увидите такой выход:
Невооружённым взглядом видно, что:
Более того, из-за
происходит постепенный выход за пределы массива, затираются стековые переменные, user на 102-ом шаге превращается в 1, что и предотвращает программу от краха. Какие именно? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||||
|
|||||||||
| Zverushka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 28.5.2011 Репутация: нет Всего: нет |
Большое Спасибо. подскажите как тогда сделать верное условие и увеличение a |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Я туплю, конечно, но просто не понимаю условие задачи. Если Вам в нулевом массиве нужно двигать единственную единичку, то достаточно хранить её координаты (всего две переменные!). Но ведь массив Вам для чего-то нужен -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
для переменной a можно использовать остаток от деления. я так понимаю при нажатии клавиши надо перемещать единичку.Если да то. -изначально обнулять массив в отдельном цикле и ставить куда надо единичку. в цикле по нажатии кнопки ставить единичку в новую ячейку и стирать из старой и будет тебе счастье З.Ы. научитесь пользоваться отладяиком |
|||
|
||||
| Zverushka |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 28.5.2011 Репутация: нет Всего: нет |
Да именно мне нужно двигать единичку, сделал как вы говорите создал 2 переменные x, y вот код
Это сообщение отредактировал(а) Zverushka - 6.1.2012, 09:07 Присоединённый файл ( Кол-во скачиваний: 3 )
1.png 7,76 Kb |
||||||
|
|||||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Для передвижения единички цикл не нужен.
|
|||
|
||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |