Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DeIVIiurg
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 16
#1

Ошибка в алгоритме со строками - C++

11.04.2012, 18:51. Просмотров 294. Ответов 4
Метки нет (Все метки)

По условию задачи, вводится строка со словами, необходимо вывести на экран слово, в котором наименьшее число повторяющихся букв. Т.е. например, слово бегемот, барабан, сын, мама...Вывести должно мама. Если таких слов несколько вывести первое.
Вот мой кусок кода, понимаю, что работает неправильно, но как переделать догнать не могу(( Логика в том,что когда встречается одинаковая буква, то я её заменяю на символ $ , а потом дополнительно проверяю совпадение с данным символом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <cstring>
 
int main()
{
        char str[80];
        char *strPtr;
        char *strProm;
        char *word = 0;
        int count = 80;
        bool gate = false;
 std::cout<<"Vvedite stroku"<<std::endl;
        std::cin.getline(str,80);
 
        strPtr = strtok(str," ");
 
        while(strPtr != NULL)
        {
                int temp = 0;
                strProm=new char[200];
                strcpy(strProm,strPtr);
                for(int i = 0; *(strPtr + i) != '\0'; i++)
                {
                        for(int j = i + 1; *(strPtr + j) != '\0'; j++)
                        {
                                if((*(strPtr + i) == *(strPtr + j))||(*(strPtr+j)=='$'))
                                {
                                    *(strPtr+j)='$';
                                }
                        }
                    temp++;
                }
                if(count > temp)
                {
                        if(gate)
                                delete[] word;
 
                        word = new char[strlen(strPtr)+1];
                        strcpy(word,strProm);
                        count = temp;
 
                        gate = true;
                }
 
                strPtr = strtok(NULL," ");
 
        }
 
        std::cout << word << std::endl;
 
        delete[] word;
 
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2012, 18:51     Ошибка в алгоритме со строками
Посмотрите здесь:

Ошибка в алгоритме - C++
Неправильно работает программа есть сетка (координаты x - в векторе A y - в векторе B) надо из известных точек проложить кратчайший...

Ошибка в алгоритме - C++
Помогите найти ошибку в алгоритме. Алгоритм должен сортировать строки. void SortArrayString(string *&amp;arr, int n, char arr2) /* arr...

Ошибка в алгоритме Хаффмана. С++ - C++
Проблемы с реализацией алгоритма Хаффмана. Код по идее должен быть рабочим, но выскакивает такое окно. Не знаю как исправить. Помогите,...

функции. (ошибка в алгоритме) - C++
задание было написать программу для вычисления с заданной точностью. так вот с функцией оно не работает, т.е. результат sum и результат...

Ошибка в алгоритме Дейкстры - C++
Помогите, пожалуйста исправить ошибки в коде! Не объявлены идентификаторы &quot;all&quot; &quot;information&quot; &quot;output&quot;, в некоторых местах отсутствуют &quot;;&quot;....

Ошибка в алгоритме сортировки - C++
Пожалуйста укажите мне ошибку в реализуемом мною алгоритме сортировки #include &lt;iostream&gt; using namespace std; int main() ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
11.04.2012, 23:22     Ошибка в алгоритме со строками #2
Цитата Сообщение от DeIVIiurg Посмотреть сообщение
Т.е. например, слово бегемот, барабан, сын, мама...Вывести должно мама.
вывод должен быть мама(2 буквы а) и бегемот(2 буквы е)
DeIVIiurg
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 16
11.04.2012, 23:33  [ТС]     Ошибка в алгоритме со строками #3
Цитата Сообщение от panicwassano Посмотреть сообщение
вывод должен быть мама(2 буквы а) и бегемот(2 буквы е)
не совсем так вы поняли, в слове мама только две буквы, они повторяются, а в слове бегемот 6 таких букв
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
11.04.2012, 23:39     Ошибка в алгоритме со строками #4
Цитата Сообщение от DeIVIiurg Посмотреть сообщение
а в слове бегемот 6 таких букв
каких это "таких" и почему 6 ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2012, 23:45     Ошибка в алгоритме со строками
Еще ссылки по теме:

Ошибка компиляции в Алгоритме Брезенхэма - C++
Есть код, который компилю на QT, но всё время ругается на строчку error: 'setPixel' was not declared in this scope Что бы я вместо...

Ошибка в алгоритме слияние массивов - C++
Этот код производит слияние двух массивов &quot;int a = {4,2,6}&quot; и &quot;b = {645,998,333}&quot; в массив &quot;c&quot; #include &quot;stdafx.h&quot; #include...

Ошибка компилятора С2064 в алгоритме - C++
#include &lt;iostream&gt; #include &lt;set&gt; #include &lt;algorithm&gt; #include &lt;iterator&gt; using namespace std; int I = 3; bool...

Ошибка в алгоритме перегрузки оператора присваивания - C++
Добрый вечер. Пишу методы для класса по своему заданию. Столкнулся с проблемой перегрузки оператора присваивания для метода поиска. Привожу...

Странная ошибка в алгоритме заполнения массива из файла - C++
Алгоритм приведенный ниже, на самом деле является частью функции, которая работает некорректно. По этому я решил переделать алгоритм в...

Ошибка в программе или алгоритме (Задача Океанариум) - C++
Помогите,пожайлуста, найти неточности\ошибку в программе или в ее алгоритме. Мой код: #include &lt;fstream&gt; #include &lt;string&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DeIVIiurg
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 16
11.04.2012, 23:45  [ТС]     Ошибка в алгоритме со строками #5
Цитата Сообщение от lazybiz Посмотреть сообщение
каких это "таких" и почему 6 ?
неправильно описал задачу, нужны слова, в которых наименьшее количество различных букв...ну в слове мама, какие буквы? М и А...в слове бегемот сколько? Б,Е,Г,М,О,Т
Yandex
Объявления
11.04.2012, 23:45     Ошибка в алгоритме со строками
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru