Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2017, 20:16   #1
MariaWalter
 
Регистрация: 29.11.2017
Сообщений: 3
По умолчанию Исправить код c++

Есть две функции. Преподаватель сделал замечание, что в обеих функциях стоят ограничения на длину строк и длину Pattern, из-за чего многие программа не проходит проверку на многих примерах. Он посоветовал использовать либо динамическую память, либо специальные типы данных. Но я в этом совершенно не разбираюсь, поэтому прошу у вас помощи с исправлением кода.

Код:
int PatternCount(char Text[10], char Pattern[10])
{int count=0;
int n=strlen(Text);
int m=strlen(Pattern);
for (int i=0; i<(n-m+1); i++)
{if (strncmp(Text + i, Pattern, m) == 0)
count=count+1;}
return count;}

std::string FrequentWords(char Text[31], int k)
{std::string FreqPatt; int count[32]; char Pattern [5]; int j; char Text1[5];
int n=strlen(Text);
int maxcount = 0;
for (j=0; j<(n-k+1);j++)
{strncpy(Pattern, Text+j, k);
Pattern[k] = '\0';
count[j]=PatternCount(Text,Pattern);
if (count[j]>maxcount) maxcount=count[j];}
for (j=0; j<(n-k+1); j++)
{strncpy(Text1, Text+j, k);
Text1[k]='\0';
if (count[j]==maxcount)
{if (Text1[j]!=Text1[j-1]) 
	FreqPatt=FreqPatt+Text1+' ';
}}
return FreqPatt;}
MariaWalter вне форума Ответить с цитированием
Старый 29.11.2017, 20:49   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,831
По умолчанию

А кто код писал? Когда писалась половина кода, автор разбился в том, что такое стринг... а потом вдруг забыл?
p51x вне форума Ответить с цитированием
Старый 29.11.2017, 21:39   #3
MariaWalter
 
Регистрация: 29.11.2017
Сообщений: 3
По умолчанию

Код писала я. Насчёт std::string мне подсказали, но с этим типом я работаю, можно сказать, впервые. Я так понимаю, на него же нужно заменить char в остальных случаях, но с ним не работают команды типа strncpy и strncmp, а на какие команды их заменить, я не знаю.
MariaWalter вне форума Ответить с цитированием
Старый 30.11.2017, 00:19   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,831
По умолчанию

strncpy - =
strncmp - ==

не хотите классы, делайте указатели с выделением памяти new/malloc
p51x вне форума Ответить с цитированием
Старый 30.11.2017, 16:18   #5
MariaWalter
 
Регистрация: 29.11.2017
Сообщений: 3
По умолчанию

Задание было написать две функции. По сути: перевести псевдокод на С/С++ (см. скриншоты). Примеры входных данных и результата тоже на скриншотах. Я выложила коды обеих функций, они работают, но не всегда. Какая помощь мне нужна я написала в теме.
Изображения
Тип файла: png Псевдокод.png (31.0 Кб, 48 просмотров)
Тип файла: png Безымянный.png (67.6 Кб, 118 просмотров)
MariaWalter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить код си# Мадлен Помощь студентам 0 23.05.2015 20:58
Исправить код UKRtortik Общие вопросы Delphi 1 02.04.2014 20:58
исправить код mishammm Помощь студентам 4 24.09.2013 01:54
исправить код Alekzinder Паскаль, Turbo Pascal, PascalABC.NET 0 28.03.2013 23:41
исправить код seed92 Помощь студентам 0 21.02.2011 16:02