Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Связный список, удаление http://www.cyberforum.ru/cpp-beginners/thread545366.html
написал программу работы со списком... проблема в удалении элемента по его имени(в процедуре удаления remove подключается процедура поиска find) но почему-то не работает поиск элемента... кажется...
C++ очень нужна помощ по С++ В файле содержится шнформация о книгах библиотеки: номер УДК, фамилия и инициалы автора, название, год издания, количество экземпляров данной книги в библиотеци.Написаты программу, которая бы... http://www.cyberforum.ru/cpp-beginners/thread545354.html
C++ Найти минимальное расстояние от точки до графика функции
у меня было задание такое: Определить минимальное расстояние функции f(x)=15logx-x от точки А(Xa,Ya) на интервале x=Xmin:h:Xmax...мой код: #include "stdafx.h" #include <math.h> #include...
code composer studio 5 visual linker C++
Сори, если не сюда эта тема относится, но ничего более подходящего не нашел Как мне включить visual linker в ccs 5 если кто работал?
C++ виртуальные функции.... http://www.cyberforum.ru/cpp-beginners/thread545337.html
как отсортировать площадь "area()" в порядке возрастания. кто знает напишите.... #include <iostream> #include <clocale> using namespace std; ...
C++ Рекурсивные алгоритмы обработки структур данных Разработать программы по алгоритму с использованием рекурсивной функции и без использования рекурсивной функции. Оценить время выполнения и сложность алгоритма. подробнее

Показать сообщение отдельно
DeIVIiurg
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 16

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

11.04.2012, 18:51. Просмотров 375. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru