|
0 / 0 / 0
Регистрация: 03.07.2016
Сообщений: 5
|
||||||
Не выводит сортируемый массив до конца03.07.2016, 22:17. Показов 1278. Ответов 9
Метки нет (Все метки)
Здраваствуйте, столкнулся с проблемой сравнения значений массива(считываемого из файлов А,В,C,D). В данной программе необходимо ввести значение А, которое сравнивается с В, которое в свою очередь сравнивается с С и выводит соответствующее ему значение D. (сравниваются по сути только В и C. A - это вводной параметр,а D - результат...и наоборот). Проблема возникла именно на этапе сравнения значений А больше 10го элемента. Вместо значений, которые ранее выводились ничего не выводит. (использовал 20 элементов в каждом файле,а B и C файлы были просто цифры от 1 до 20(в В) и в обратном порядке в С).
Это мой первый код связанный с текстовыми данными, так что многое из того, что в нем применено было взято из разных мест(интернет, книги). И реально есть сомнения, что сам подход верен. Если не трудно, могли бы Вы подсказать где не прав, так как уже всю голову сломал и никак понять не могу почему так.
0
|
||||||
| 03.07.2016, 22:17 | |
|
Ответы с готовыми решениями:
9
Проблема не до конца выводит файл
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
|
| 04.07.2016, 17:25 | |
|
Какая цель всех этих сравнений и копирований?
Что должно получиться в итоге?
0
|
|
|
0 / 0 / 0
Регистрация: 03.07.2016
Сообщений: 5
|
|
| 04.07.2016, 22:12 [ТС] | |
|
В итоге получим значения А и D(либо наоборот,при обратных действиях).
Цель - реализация самого перехода от А к D. Изначально было дано задание в следующей (устной)форме: Есть некий массив одних значений и других, но напрямую их связать можно только с помощью третьего массива, который по сути является переходом от одной системы к другой. (массивы A,B,C и D имеются в текстовой форме. В каждом 20 элементов) Размышляя над тем, как это можно реализовать я пришел к следующему: Есть начальные данные, которые вводятся пользователем (это А). В и С в данном случае это параметры, которые позволяют перейти от А к D. Напрямую перевести нельзя и потому нужны эти преобразования(из условия). Фактически введя некое значение А мы находим соответствующий этому А - В. А поскольку у нас параметры С и D могут быть в разброс, то необходимо еще определить и найти в какой строке находится подходящее С и сопоставить с соответствующему ей значению D.
0
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
||||||
| 05.07.2016, 08:08 | ||||||
|
В случае чисел больше 10-ти, значение в третьем массиве находится раньше, чем во втором.
Поэтому, переменная per1 оказывается незаполненной. Мне кажется, что тут нужен другой подход: надо прочитать все файлы в память и работать с данными уже в памяти. Попробую переделать по-другому (хотя я до конца задачу так и не понял - уж очень хитро она сформулирована). Добавлено через 20 минут Вот что получилось:
1
|
||||||
|
0 / 0 / 0
Регистрация: 03.07.2016
Сообщений: 5
|
|
| 05.07.2016, 13:13 [ТС] | |
|
Благодарю Vort_, за Ваш ответ. Пытаясь осмыслить предложенный Вами вариант, я столкнулся с проблемой, что программа на все введенные значения ("A" и "D") выдает "Элемент не найден". А при введении "B" и "С" работает.
Ранее, до компиляции возникла проблема с 17й строкой(компилятор ругался на нее, но как я понял дело в самом компиляторе (gcc)) и я дописал "name" до такого вида "name.c_str()". После этого все запустилось,но результат стал именно такой, как был описан выше.
0
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
|
| 05.07.2016, 13:43 | |
|
Я пытался повторить результат исходной программы
Из того, что она ищет по второму массиву ( if (strcmp(mod,mass2)==0)), сделал вывод, что именно это и задумывалось.В итоге, переделал вот так: 1. Введенное значение (назовём его X) ищется в массиве B, в результате находится его индекс. 2. По индексу в массиве B выбираю элементы из массива A и C и вывожу их на экран. Можно сделать и как-то по-другому. Но надо бы для этого расписать алгоритм в терминах "поиска индекса по элементу" и "поиска элемента по индексу" - ведь именно это требуется, верно? Добавлено через 4 минуты Ещё подозреваю, что может потребоваться сделать перевод строки в число, это тоже можно реализовать при необходимости. Насчёт gcc - всё верно, именно так и надо было исправить.
0
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
|
| 05.07.2016, 13:57 | |
|
Вот работа моей программы в виде схемы:
0
|
|
|
0 / 0 / 0
Регистрация: 03.07.2016
Сообщений: 5
|
|
| 06.07.2016, 22:12 [ТС] | |
|
Здравствуйте, Vort_
Да, алгоритм поиска значения по В именно такой, кроме одного момента...если В=Х,то и С должно быть равно Х(то есть если судить по картинке ответ должен быть: е(А) 5(В) 5(С) pp(D). О поиске "индекса по элементу" и "элемента по индексу" думаю ставить вопрос с моей стороны было бы не совсем корректно,так как индекс элемента больше относится к его расположению в массиве и принадлежности к тому или иному формату(числовой или буквенный).Конечно могу быть неправ,но примерно такое представление имею.Тут же больше подходит "поиск по значению элемента". И логика примерно такая, как на картинке(в ней конкретный завал, так как В находится,но не сравнивается с С, хоть и заданы два по очереди условия IF и последовательность скобочек соблюдена), хотя поиск по B и C отдельно также имеет место. О переводе строки в число уже была мысль,но сложность в том, что там и числа и буквы вперемешку(
0
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
||||||
| 07.07.2016, 08:26 | ||||||
Сообщение было отмечено troxer как решение
Решение
Если элементы массивов B и C являются вспомогательными параметрами, то зачем программа начинает с их поиска?
Это меня и сбило с толку. В общем, сделал я вариант с A <-> D:
1
|
||||||
|
0 / 0 / 0
Регистрация: 03.07.2016
Сообщений: 5
|
|
| 07.07.2016, 12:03 [ТС] | |
|
Спасибо огромное Vort_!!!
![]() ![]() Конечно как новичку мало что понятно, но тут уж буду работать и разбираться Еще раз спасибо
0
|
|
| 07.07.2016, 12:03 | |
|
Помогаю со студенческими работами здесь
10
Как массив перебирать с конца?
Новичёк в ступоре, вывести массив с конца Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|