Задача: Подсчет кол-ва различных пар букв в строке

Тема в разделе "C/C++/C#", создана пользователем Ilias, 9 дек 2010.

  1. Ilias

    Ilias Гость

    Помогите, пожалуйста, с задачей! Во введенном слове подсчитать количество различных пар букв. Например, в слове babacabacd 5 различных пар букв, ba – 3 пары, ac – 2 пары.
    Borland C++ builder 6.
     
  2. Miller85

    Miller85 Гость

    Проверяй
    Код (C++):
    #include <iostream>
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <string.h>
    using namespace std;
    int main()
    {
    char str[100], pair[3] = {'\0'};
    int i, j, len, count=0, equal_flag;
    char **arr;
    setlocale(LC_ALL,"Russian");
    printf<<"Введите слово: ";
    scanf("%s", str);
    len = strlen(str);

    arr = new char*[len-1];
    for(i = 0; i < len-1; ++i)
    {
    pair[0] = str[i];
    pair[1] = str[i+1];

    equal_flag = 0;
    for(j = 0; j < count; ++j)
    if(!strcmp(pair, arr[j]))
    {
    equal_flag = 1;
    break;
    }

    if(equal_flag == 0)
    {
    arr[count++] = new char[3];
    strcpy(arr[count-1], pair);
    }

    }

    printf("\nКоличество пар в слове = %d\n\n", count);

    for(j = 0; j < count; ++j)
    delete[] arr[j];

    delete[] arr;
    return(0);


    }
    33.jpg
     
  3. Ilias

    Ilias Гость

    Вроде всё правильно.Спасибо!
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Miller85
    Ты пива что ль перепил)))

    Ну это как минимум не разумно:
    Код (C++):
        ...
    cout<<"Введите слово: ";
    scanf("%s", str);
    ...
    Определись, либо С, либо С++ ))

    Вот это вообще выше моего разума))
    Код (C++):
    arr = new char*[len-1];
    потом (можно сказать сразу)
    Код (C++):
     if(!strcmp(pair, arr[j]))
    Я не хочу наезжать и докапываться, но мне просто интересно это КАК !?? О_о)))
     
  5. Miller85

    Miller85 Гость

    Сори...;=)) Просто паралельно пил пиво, вот и занесло не туда;=)) Начальные знания со школы всплыли...

    Код (C++):
    #include <map>
    #include <string>
    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main()
    {
    char str[100];
    setlocale(LC_ALL,"Russian");
    cout<<"Введите слово: ";
    std::cin.getline(str, 100);
    std::map<std::string, int> pairs;
    for(int i=0, len=strlen(str); i<len-1; i++)
    {
    std::string a="";
    a += str[i];
    a += str[i+1];
    pairs[a]++;
    }

    std::cout<<"Пар в слове: "<<str<<"-"<<pairs.size() << std::endl;
    getch();
    return 0;
    }
    Бывает чо:=))
     
  6. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    2 Miller85 : Так что с этой темой??? Она актуальная ? ;-)
     
  7. Miller85

    Miller85 Гость

    Нет... Вроде бы всё...
     
Загрузка...
Похожие Темы - Задача Подсчет кол
  1. Янчик
    Ответов:
    0
    Просмотров:
    489
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    782
  3. elzim
    Ответов:
    0
    Просмотров:
    932
  4. ShaoKahn
    Ответов:
    1
    Просмотров:
    1.125
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.107

Поделиться этой страницей