|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.01.2010, 21:47 | #1 | |
Пользователь
Регистрация: 17.12.2008
Сообщений: 11
|
Задача на С++. Символы,строки.
Двумерный массив n × m содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза.
Я написал некоторую часть кода,но я перепробовал все виды сравнения символов из матрицы и символа из строки. Все они выдают либо неправильный результат ,либо ошибку процессора. Цитата:
Может ли кто-нибудь помочь? Возможно именно идея решения задачи неверна? |
|
07.01.2010, 12:26 | #2 |
Пользователь
Регистрация: 17.12.2008
Сообщений: 11
|
Может кто-нибудь что-то посоветовать?
|
07.01.2010, 16:07 | #3 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
for (i=1;i<=1;i++)
for (j=1;j<=1;j++) смотри на условия выполнения тела цикла. код в циклах будет выполнятся только один раз. наверно там надо поставить i<=m и j<=n. |
07.01.2010, 16:18 | #4 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
еще
в индекс первого элемента массива не 1 как в паскале, а 0. у тебя везде 1. char* stroka[20]; - это массив указателей на символы а не массив символов. надо char stroka[20]. нигде нет проверок на всякие выходы за границы массивов и т.п. код надо разбивать на функции. посмотреть что такое STL, хотябы что такое std::string, которая живет в #include <string> да и вообще все написано пипец как плохо. |
07.01.2010, 17:07 | #5 |
Пользователь
Регистрация: 17.12.2008
Сообщений: 11
|
Так как мне сравнить символ из строки с символом из матрицы?
|
07.01.2010, 18:10 | #6 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
см ниже 1234567890
Последний раз редактировалось _Ч_; 07.01.2010 в 18:45. |
07.01.2010, 18:11 | #7 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
Код:
|
07.01.2010, 18:16 | #8 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
смотреть надо в void DoCheck(const string& word, const Matrix& matrix).
не понимаю нафига там матрица, но идея такая. все символы матрицы сливаются в одномерный массив. берем первый символ слова и считаем сколько таких символов в слове начиная с первой позиции. потом считаем сколько таких же символов в матрице. если в матрице их меньше чем в слове, значит матрица плохая, иначе следующая итерация, на которой берется второй символ слова, считается, сколько таких символов в слове начиная со второй позиции, потом считается количество таких символов в матрице и т.д. и не надо вытаться там что-то оптимизировать, понятность происходящего по умолчанию всегда на первом месте |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
строки и символы | AlinAA | Фриланс | 3 | 17.05.2018 14:08 |
Задача на Символы и строки в Delphi. | ClassicV | Помощь студентам | 2 | 30.11.2009 11:40 |
Строки и символы | 111111 | Общие вопросы C/C++ | 2 | 16.12.2008 18:18 |
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй | gotex | Помощь студентам | 4 | 08.05.2008 02:27 |