Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 16
1

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

11.04.2012, 18:51. Просмотров 459. Ответов 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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2012, 18:51
Ответы с готовыми решениями:

Ошибка в алгоритме
Помогите найти ошибку в алгоритме. Алгоритм должен сортировать строки. void...

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

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

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

4
595 / 563 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
11.04.2012, 23:22 2
Цитата Сообщение от DeIVIiurg Посмотреть сообщение
Т.е. например, слово бегемот, барабан, сын, мама...Вывести должно мама.
вывод должен быть мама(2 буквы а) и бегемот(2 буквы е)
0
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 16
11.04.2012, 23:33  [ТС] 3
Цитата Сообщение от panicwassano Посмотреть сообщение
вывод должен быть мама(2 буквы а) и бегемот(2 буквы е)
не совсем так вы поняли, в слове мама только две буквы, они повторяются, а в слове бегемот 6 таких букв
0
Эксперт С++
4964 / 3070 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
11.04.2012, 23:39 4
Цитата Сообщение от DeIVIiurg Посмотреть сообщение
а в слове бегемот 6 таких букв
каких это "таких" и почему 6 ?
0
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 16
11.04.2012, 23:45  [ТС] 5
Цитата Сообщение от lazybiz Посмотреть сообщение
каких это "таких" и почему 6 ?
неправильно описал задачу, нужны слова, в которых наименьшее количество различных букв...ну в слове мама, какие буквы? М и А...в слове бегемот сколько? Б,Е,Г,М,О,Т
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2012, 23:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка в алгоритме сортировки
Пожалуйста укажите мне ошибку в реализуемом мною алгоритме сортировки #include &lt;iostream&gt; ...

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

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

Ошибка в алгоритме проверки строки
Проверяю строку на корректность, все работает нормально, кроме одной вещи. Сделал алгоритм для...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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