|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 35
|
||||||
Цикл считает не то. Что не так в коде ?17.06.2019, 21:45. Показов 1805. Ответов 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? Что не так в коде? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|