3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
||||||
1 | ||||||
Двухмерный массив с разными типами данных09.12.2014, 19:25. Показов 5469. Ответов 23
Метки нет (Все метки)
Доброе время суток.
Есть задание Есть кое какие наработки, и тут же есть проблемы которые не могу решить.
Как все таки пройти проверку? 2)Как string преобразовать в int (может кто-то уже сталкивался с этим, и может подсказать куда копать). 3)Не по теме:зачем в ЯП ввели константу, если число забитое вручную уже константа? P.S:если есть идеи как решить по другому данное задание, поделитесь пожалуйста.
0
|
09.12.2014, 19:25 | |
Ответы с готовыми решениями:
23
Массив с разными типами данных Сделать статический массив с разными типами данных Массив с разными типами через memcpy() Матрица с разными типами данных в ней |
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
09.12.2014, 19:29 | 2 |
= это присваивание. сравнение - это ==.
0
|
59 / 59 / 12
Регистрация: 01.01.2010
Сообщений: 222
|
||||||
09.12.2014, 19:30 | 3 | |||||
2.
0
|
3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
|
09.12.2014, 19:39 [ТС] | 5 |
DrOffset, если ставить сравнивать в if, результат не меняется см.изображение. Если заменить в строке flags=i, тогда компилятор выдает ошибку (мол flags не объявлен).
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
09.12.2014, 19:48 | 6 |
ftp13, на первой итерации он находит совпадение, а на второй нет, соответственно выводит «не найден». Логика потерялась. Вероятно нужно прервать цикл после того, как нашли совпадение.
1
|
8 / 8 / 5
Регистрация: 19.11.2012
Сообщений: 438
|
|
09.12.2014, 19:51 | 7 |
ftp13, у меня похожая задача, кажись была, только там со структурами.
0
|
3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
|
09.12.2014, 19:59 [ТС] | 8 |
qozyre, да я тоже склоняюсь, что было бы лучше через структуры, но написано двухмеры, а переговорить с преподавателем нет возможности.
Добавлено через 4 минуты DrOffset, да действительно надо было прервать цикл. Огромное спасибо.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
||||||
09.12.2014, 20:03 | 9 | |||||
ftp13, в общем вот я тут подредактировал слегка.
Кликните здесь для просмотра всего текста
0
|
3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
|
09.12.2014, 20:11 [ТС] | 10 |
DrOffset, спасибо за идею, это на много лучше, чем завершение программы если человек не найден
Пойду дальше с бубном и костылями танцевать на типах данных.
0
|
8 / 8 / 5
Регистрация: 19.11.2012
Сообщений: 438
|
||||||
09.12.2014, 20:15 | 11 | |||||
ftp13,
я помню, правда давно уже, использовал, кажись, вот такую штуку
1
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
09.12.2014, 20:32 | 12 |
ftp13, да, не по теме добавлю: я не стал там исправлять, но использовать goto для прыжков назад по коду не очень хорошо. Для этого есть циклы.
Константа - это абстракция. Средство контроля кода. Чтобы возложить на компилятор сохранение целостности значения и предоставить возможность определенных оптимизаций. Именованная константа дает возможность оперировать именем, а не значением. Имя проще искать, менять значение тоже нужно будет только в одном месте и т.д. Это такое же средство упрощения программирования, как и остальные инструменты: функции, массивы и т.п.
0
|
3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
|
09.12.2014, 20:51 [ТС] | 13 |
DrOffset, при вашем варианте вылетает ошибка на уровне ниже (см.изображение 2).
qozyre. Спасибо, ваш вариант подошёл, не думал что такой костыльный подход будет таким легким.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
09.12.2014, 21:00 | 14 |
0
|
3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
||||||
09.12.2014, 21:16 [ТС] | 15 | |||||
DrOffset, и ваш вариант, и мой
На счёт goto, я не совсем помню статью(помню что это не этично), но запретный плод так сладок.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
09.12.2014, 21:23 | 16 |
ftp13, давай-ка ты скинешь именно тот код, который падает (полностью) и заодно набор входных данных. Гадание оставим гадалкам
0
|
3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
|||||||||||
09.12.2014, 21:37 [ТС] | 17 | ||||||||||
DrOffset,ок.
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
1-ый ваш вариант,2-ой мой. Вх.данный: 1)lion 5 31000 2)sergey 6 9000 3)dmitriy 5(пять количество отработанных дней) Диалоговое окно: Первый этап обработки исключения по адресу 0x002756F6 в task_4.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x34102C64. P.S:юзаю Visual Studio Ultimate 2012 v.11.0.61030.00 Update 4.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
09.12.2014, 21:52 | 18 |
ftp13, все ясно. Конечно же мой вариант тут не при чем. В нем все правильно.
flags = -1; перед циклом-то ты забыл поставить?
0
|
3 / 3 / 2
Регистрация: 18.10.2012
Сообщений: 101
|
|
09.12.2014, 22:04 [ТС] | 19 |
DrOffset я не уверен, но возможно ошибка не в этом, а в том что мы запутались в переменных.
flags_str - переменная для проверки на совпадения, а flags - переменная указывающая элемент в массиве, а так как мы указываем на положение в массиве оно не может быть отрицательным, поэтому я объявил её без знаковым. А тут еще и проверка которая пытается проверить её на отрицательное число.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
||||||
09.12.2014, 22:21 | 20 | |||||
Понимаешь ли. Ты невнимательно преписал мой пример. Я там произвел некоторые изменения, которые сделали этот код корректным, а ты часть изменений себе не внес. В этом и ошибка. Если я что-то там исправил, то это не просто так.
Посмотри еще раз внимательно на мой пример под спойлером. Переменная flags там - знаковая! Перед поиском мы выставляем ее в -1, обозначая признак отсутствия совпадений. Если по ходу цикла мы ни разу не вошли в if, то после цикла сработает проверка на -1 и мы вернемся к началу ввода. Таким образом проверка на -1 защищает дальнейший код от обращения по -1 индексу. Ты же нарушил это, не до конца переписав мой код, и получил это самое обращение в строке 46. Отсюда падение. Естественно я проверял свой код перед тем как постить сюда, и уверен в нем на 300%. Добавлено через 7 минут Почему выставляем в -1? Потому что все остальные значения могут быть корректными индексами, и только -1 в данном случае не может. Можно было поступить другим образом, например брать индекс элемента, следующий за последним. Если всего элементов 3, то 3 - может обозначать некорректный индекс. Тогда можно оставить беззнаковый int. Но в этом случае все равно нужно выставить flags перед поиском, чтобы проверка после цикла могла срабатывать.
0
|
09.12.2014, 22:21 | |
09.12.2014, 22:21 | |
Помогаю со студенческими работами здесь
20
Реализация Fifo с разными типами данных Переписать программу с разными типами данных Работа с указателями на функции, разными типами данных Список с разными типами данных, унаследованным от одного Работа с указателями на функции, разными типами данных Итератор для двусвязного списка с разными типами данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
|
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
|
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
|
Как записать только часть изменений файла в Git
bytestream 28.01.2025
В процессе разработки программного обеспечения часто возникает необходимость сохранить только определенные изменения из множества внесенных правок в файлах. Система контроля версий Git предоставляет. . .
|
[golang] 80. Remove Duplicates from Sorted Array II
alhaos 28.01.2025
В предоставленном упорядоченном по возрастанию целочисленном слайсе, оставить уникальные элементы полюс один возможный дубликат. Вернуть количество таких элементов.
/ / . . .
|
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
|
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
|
Чем отличаются public, protected, package-private и private в Java
bytestream 27.01.2025
В языке программирования Java механизм модификаторов доступа играет ключевую роль в реализации одного из фундаментальных принципов объектно-ориентированного программирования - инкапсуляции. . . .
|
Зачем нужно explicit в C++. Преобразование типов
bytestream 27.01.2025
В мире программирования на C++ управление преобразованием типов данных играет crucial роль в создании надежного и безопасного кода. Язык C++ предоставляет множество механизмов для контроля над. . .
|
Как создать удалённую (remote) ветку в Git
bytestream 27.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления кодовой базой. Одним из ключевых. . .
|
Как создать утечку памяти в Java
bytestream 27.01.2025
Утечка памяти в Java представляет собой ситуацию, когда программа неэффективно использует доступную память, удерживая ссылки на объекты, которые больше не нужны для работы приложения. Несмотря на. . .
|
КуМир: как решать задачи на числа
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой уникальную образовательную среду программирования, разработанную специально для обучения основам алгоритмизации и программирования. Эта система. . .
|