|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
||||||
Цикл считает не то. Что не так в коде ?17.06.2019, 21:45. Показов 1763. Ответов 21
Метки нет (Все метки)
Написал простенькую программу - имею небольшой массив данных masF[111][12], из которого я последовательно беру по 6 (шесть) строк.
Эти 6 строк заливаю в массив masA[6][12], который исследую. Моя задача - выбрать все возможные массивы masA[6][12] так, чтобы они содержали не менее двух строк со второй позицией 2 (двойка), и не менее двух строк с числом 20 (двадцать) на последней позиции. То есть {1,2,3,4,5,10,11,13,14,15,16,17} строка верная (двойка на второй позиции), и {1,5,6,8,9,10,12,13,14,17,19,20} тоже верная (число 20 на последней позиции). Такая строка {1,2,5,6,7,10,11,13,14,16,17,20} тоже верная. В приведенном примере идет сравнение строк массива masA[6]12] с числами 2 и 20, и если отношения верные, то переменные c1 и с2 инкременируют. Далее, если нужных строк (в masA[6][12]) две или более, то вывожу этот массив (номера строк) на печать. Далее - обнуляю переменные c1 и c2, и иду на новый цикл.
Первый цикл считает правильно - (на картинке) 6-2 это значения c1 и c2. Числа 0,1,2,3,4,5 - номера верного набора masA[6][12]. Второй цикл выпал, с третьего цикла пишет какую-то чушь. Число 14 (правая картинка) - максимум 6 может быть... Что я делаю не так ? Видимо, не знаю какую понятную всем хитрость... Или залип на чем-то и не вижу .... Вторые сутки не пойму.
0
|
||||||
| 17.06.2019, 21:45 | |
|
Ответы с готовыми решениями:
21
Что в коде не так? Получился вечный цикл. Не могу найти где ошибка Не считает. Что не так. В чем ошибка
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 17.06.2019, 22:15 | |
|
Littlesnake, что за i1, i2 и т. д.?
0
|
|
|
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
|
|
| 17.06.2019, 22:16 | |
|
нет
0
|
|
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 17.06.2019, 22:29 [ТС] | |
|
Фигурные скобки у for есть, в них заключены оба if.
i1, i2 ... i6 - номера (в циклах) строк из заданного изначально masF (которые вливаются в masA), именно эти строки (их номера) я вывожу на печать. В строке outfile в конце имеется endl, просто забыл дописать. Добавлено через 8 минут Максимальное значение c1 и c2 - шесть. Строк-то в массиве masA шесть, и числа в строках не повторяются. Использую MS VS 2008 Express edition. Win7 64.
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||||||
| 17.06.2019, 22:34 | ||||||
|
Littlesnake, что то не информативный вывод у вас, попробуйте как то так (только это говнокод с магическими константами, не нужно так писать)
0
|
||||||
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 17.06.2019, 22:51 [ТС] | |
|
Это выше моего понимания.
Вставленный код выдал кучу ошибок, и намек на то, что ВСЕ надо переписать. А вот как бЭ изменить мой код (пусть с магическими штучками...) ?
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||||||||
| 17.06.2019, 22:59 | |||||||||
|
Добавлено через 1 минуту Добавлено через 1 минуту вот нужные заголовки
0
|
|||||||||
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 17.06.2019, 23:05 [ТС] | |
|
Буду пробовать
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 17.06.2019, 23:24 | |
|
Littlesnake, пардон, обманул, std::size начиная с С++17 доступен
В общем тут на F8 потыкайте, может повезет https://rextester.com/WPD5197
0
|
|
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
||||||
| 17.06.2019, 23:46 [ТС] | ||||||
|
Это все выше моего понимания. Пишу програмки по мере их поступления.
Мне бы подшаманить мою писанину. Сам "С++11 включите" не осилю, да и ни к чему. Нужно взять последовательно 6(шесть) строк, и проверить их на - - на второй позиции стоит 2 (двойка), - на последней 20 (двадцать). Отобранные 6-строчные группы вывести на печать. Может их будет 1000 штук... А архив выглядит так -
0
|
||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||||||||
| 17.06.2019, 23:56 | ||||||||
![]() если и так не осилите, то вот попробуйте Кликните здесь для просмотра всего текста
0
|
||||||||
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 18.06.2019, 00:21 [ТС] | |
|
Все это хорошо. Спасибо. Работает.
Но - 6 строк могут быть НЕ ПОДРЯД.
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||
| 18.06.2019, 00:24 | |||
|
0
|
|||
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 18.06.2019, 00:40 [ТС] | |
|
Это на самом деле так.
Архив masF[189][12] на самом деле больше - 189 групп по 12 чисел. И меня интетесуют в нем эти самые 10-строчные группы (группа по 10 строк, состоящая из 12 чисел). Группа эта выбирается самым обыкновенным образом - не подряд. Поскольку групп по 10 может из 189 должно быть огромное число, чтото вроде 12579815754171666 штук, посчитать их на обычном ПК практически не возможно. Посему я решил задачу разделить - взял ЧАСТЬ архива в 111 строк (в которых на первой позиции стоит 1 единичка), из которых взять надо группы по 6 (шесть) разным образом(не подряд), из которых должно быть ... ну и так далее. Вот в чем суть. А у меня считать не хочет... Я хочу взять результата из просчета masA[111][12] , и применить его в дальнейшем расчете в masA[189][12].
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 18.06.2019, 00:48 | |
|
Ну тогда вы выбрали не самый лучший способ
![]() Наверное стоит сперва проанализировать исходный массив и сформировать массив int type[111], в котором элемент c с индексом i содержит значения 0, 1, 2, 3, определяющим тип i строки исходного массива (0 - не удовлетворяет ни одному условию, 1 - arr[i][1] == 2, 2 - arr[i][11] == 20, 3 - 1 && 2) А дальше просто генерируйте перестановки(или сочетания, смотря что нужно). Удачи
0
|
|
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 18.06.2019, 01:09 [ТС] | |
|
Это у вас все так просто.
А у меня в masA[111][12] надо просчитать 1340095640626 вариантов. Или меньше... И взять из низ все группы по 6 строк, в которых...так далее. А оно не считает.
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||||||
| 18.06.2019, 16:21 | |||||||
Сообщение было отмечено Littlesnake как решение
Решение![]() Вот для небольшого массива(уникальные сочетания 15 по 6) с пониженным содержанием "правильных" строк
1
|
|||||||
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 18.06.2019, 16:43 [ТС] | |
|
Этот код у меня не работает.
Сначала пишет - забыли добавить #include "stdafx.h" , добавил, пишет - (39) : error C2143: syntax error : missing ',' before ':' (39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int Строка 39 - if (c1 >= 2 && c2 >= 2) { --recs; std::cout << "rows: "; (39) for (auto row : sub_arr) std::cout << row << ' '; std::cout << "\nc1 = " << c1 << std::endl << "c2 = " << c2 << std::endl; } Лютый треш...Где запятую добавить перед двоеточием - не вижу.
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 18.06.2019, 16:51 | |
|
забыл что у вас с++11 нет, проблема в auto.
Добавлено через 1 минуту for (size_t row = 0; row < sub_rows; ++row) std::cout << sub_arr[row] << ' ';
1
|
|
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
|
| 18.06.2019, 17:04 [ТС] | |
|
Вроде ПРАВИЛЬНО считает...
Теперь надо направить вывод результата в файл. СПАСИБО !!
0
|
|
| 18.06.2019, 17:04 | |
|
Помогаю со студенческими работами здесь
20
Считает элементы в строках а не столбцах. Что не так?
Что не так тут? программа считает количество символов Транспортная задача. Программа немного криво считает, а что не так, не могу понять... Что с оператором if else на jQuery? Что не так в коде? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|