![]() |
Двумерный массив
Доброго времени суток, товарищи программисты. Я учусь на программиста, и вот перед мной встала такова задача. Которую я не могу преодолеть.
Задача: Написать двумерный массив символьного типа из звездочек и точек, в рендомном порядке, и подсчитать количество звездочек в массиве. Условие: Если звездочки идут подряд, в рядке или строке то считать их как одну. Я вот что наработал: Код:
#include <iostream> Дальше проблема. Думаю сделать что бы через условие, если идет подряд 2 звездочки, то считай как одну, и переписывай массив, до тех пор, когда массив совсем не упроситься. А есть еще идея удалять те которые идут подрят по одной. Еще вот что с кодом придумал, но не знаю как его оформить правильно. Буду заранее благодарен!!! Код:
сhar temp[20] = a[1]; .***... **..**. тут 2 звездочки. |
Цитата:
(без обид, без подколов, никакой задней мысли) Такое решение возможно. Просто подумай еще. Может можно сделать проще. ---- Цитата:
|
|
lxa85
Необходимо написать массив, с звездочек и точек, размер 200 на 200. Посчитать количество звездочек. Если звездочки идут подряд, хоть в ряду, хоть в столбе, то считать их как одну. Пример работы программы: 0**000 0*0**0 000*00 тут 2 звездочки. |
А тут:
Код:
****** |
тут одна
|
Мне что-то в голову ничего не приходит окромя рекурсивного перебора.
|
Iska, пример кода хотябы напиши)
|
Цитата:
Это скрипт на WSH, исполнение только под консолью; перевод за Вами ;). Если хотите посмотреть шаги: — раскомментируйте закомментированный вывод. Алгоритм простой — движемся по массиву сверху вниз/слева направо. Найдя элемент с потребным содержимым, увеличиваем счётчик найденного и меняем содержимое элемента (дабы не учитывать его повторно), затем опрашиваем его «соседей» сверху, снизу, справа и слева. Если «сосед» также окажется элементом с потребным содержимым — вызываем аналогичную процедуру для него. Повторяем, пока не дойдём до конца массива. P.S. Можно увидеть, что алгоритм не совсем оптимален — для «соседа» всегда будет проверяться его элемент-«сосед», с которого и «пришли» к данному элементу. Этого можно избежать, указывая дополнительно, с какого направления мы «пришли» к данному элементу. Но я не стал усложнять алгоритм, поскольку в данном случае сие малосущественно. |
Омг) я первокурсник) я не переведу такое:(
|
vista54, Вам всего то надо перевести функцию рекурсии. Остальное - "обвеска".
Цитата:
|
Цитата:
Код:
cscript.exe //nologo "Путь к сохранённому файлу\Имя.vbs" |
По ходу дела это flood fill http://ru.wikipedia.org/wiki/%D0%97%...B2%D0%BA%D0%B0
|
ладно приду с пар, попробую) Всем спасибо!
|
Время: 19:34. |
Время: 19:34.
© OSzone.net 2001-