Родились сегодня:
Rosiam


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

723

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

326

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

279

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

211

Беларусь, Минск


ID: 400815

alexleonsm

6-й класс

130


ID: 400669

epimkin

Профессионал

120


ID: 401888

puporev

Профессор

111

Россия, Пермский край


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-11 18:46:03-standard


Создание программ на языках C и C++.

Администратор раздела: CradleA (Мастер-Эксперт)

Консультация онлайн # 200410

Раздел: С / С++
Автор вопроса: Ericsson (Посетитель)
Дата: 13.03.2021, 07:32 Консультация закрыта
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом:
Распечатать те пары слов, расстояние между которыми наименьшее. (Расстояние между словами — это количество позиций, в которых слова различаются. Например, расстояние между словами МАМА и ПАПА или МЫШКА и КОШКА равно двум.)

Ответ # 280839 от Хватов Сергей
Здравствуйте, Ericsson!
К сожалению желающих ответить не нашлось, так что вот ответ неполный: функция, которая считает результат:
Код
typedef CHAR char;

int word_dist (const CHAR *left, const CHAR *right) {
 int d;
 for (d = 0; *left && *right; ++d, ++left, ++right) {
  if (*left == *right) return d;
 }
// одинаковых символов не нашлось -- возвращаю -1
 return -1;
}

Не работает с многобайтовыми кодировками, так что кириллицу придётся во что-то преобразовывать. Я не знаю как с этим в Windows. В Linux надо руками декодировать в wchar_t и соответствующим образом переопределить в программе CHAR

Хватов Сергей

Академик
22.03.2021, 18:56
Мини-форум консультации # 200410

q_id

Ericsson

Посетитель

ID: 403884

1

= общий =    13.03.2021, 07:33

C++

q_id

Хватов Сергей

Академик

ID: 20764

2

= общий =    13.03.2021, 22:41

Ну где вы тут сложности нашли? Вот функция которая считает то, что вам требуется. Обвес (ввод, вывод,..) пусть пишет кто-то другой.

Код
typedef CHAR char;

int word_dist (const CHAR *left, const CHAR *right) {
 int d;
 for (d = 0; *left && *right; ++d, ++left, ++right) {
  if (*left == *right) return d;
 }
// одинаковых символов не нашлось -- возвращаю -1
 return -1;
} 

Последнее редактирование 13.03.2021, 22:42 Хватов Сергей (Академик)

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

CradleA

Мастер-Эксперт

Рейтинг: 211

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 81

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 73

Хватов Сергей

Академик

Рейтинг: 27

Степанов Иван /REDDS

4-й класс

Рейтинг: 1

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0