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

Определить, имеются ли в последовательности слова, в которых каждая буква слова входит в него не менее двух раз - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Оставить в словах только первые вхождения каждой буквы. http://www.cyberforum.ru/cpp-beginners/thread961796.html
Всем Hello! Помогите с решением друзья, буду очень благодарен))) Строки: 1) Оставить в словах только первые вхождения каждой буквы.
C++ Переставить два средних числа местами в четырёхзначном числе число естественно задаётся изначально как int http://www.cyberforum.ru/cpp-beginners/thread961790.html
C++ Иерархический список
Задание: удалить из иерархического списка все вхождения заданного элемента (атома) x.( Не для решения, просто пример, сам напишу) Интересует вопрос как организован иерархический список ( если можно пример) ?
Подчет каличество цифр ввода C++
include <iostream> using namespace std; int main() { int n; int count = 0; cin >> n; if (n > 0) {
C++ Создать список.Вывести на экран сначала эл-ты кратные 5,затем эл-ты кратные 7 http://www.cyberforum.ru/cpp-beginners/thread961757.html
Насколько знаю,есть какие-то шаблонные списки.Так вот он не нужен.Нужно вручную,допустим список целых чисел.Надеюсь,верно написала...
C++ Что же это такое ? подскажите что это такое: int (**myint)(); myint = &address; // address это Dll+0x00C060 SendPing((int)&myint); address указатель на функцию int Func(void *) подробнее

Показать сообщение отдельно
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.10.2013, 22:43     Определить, имеются ли в последовательности слова, в которых каждая буква слова входит в него не менее двух раз
Кликните здесь для просмотра всего текста
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "conio.h"
#include <stdio.h>
#include "string.h"
 
int check(const char *str, const char ch) // функция проверки нахождения символа в массиве
{
    int size = strlen(str);
    for (int i = 0; i < size; ++i) // перебор символов в массиве
    {
        if (str[i] == ch) 
            return 1; // если символ в массиве есть
    }
    return 0; // если нет
}
 
int main() 
{
    const int N = 6;
    char str[N][30];
    
    printf("%s %d %s", "Enter", N, "words:\n");
    for (int i = 0; i < N; ++i)
        scanf("%s", str[i]);
    printf("\n");
    
    for (int i = 0; i < N; ++i) // перебор слов
    {
        int n = 1, m = 0; // n - количество найденных одинаковых букв, m - индекс символов в temp
        char temp[30] = "\0"; // массив для букв, которых в слове не менее двух
        int size = strlen(str[i]); // размер слова
        int flag = 0; // флаг нахождения слова, соответствующего условию
        
        for (int j = 0; j < size; ++j) // перебор и анализ букв в слове
        {
            while (check(temp, str[i][j])) // если такая буква слова уже есть в temp, то пропускаем её
            {
                ++j;
                if (j == size) // если в temp все буквы, которых в слове не менее двух
                {
                    flag = 1; // найдено слово, соответствующее условию
                    break;    // выход для вывода найденного слова
                }
            }
            if (flag == 1) break; // выход для вывода найденного слова
            for (int k = j + 1; k < size; ++k) // если буквы слова нет в temp, сравниваем её со следующими буквами слова
            {
                if (str[i][j] == str[i][k]) ++n; // если найдена в слове такая же буква
                if (n == 2) // если таких букв не менее двух
                {
                    temp[m] = str[i][j]; // записываем такую букву в temp
                    ++m;
                    break; // переход к анализу следующей буквы в этом слове
                }
            }
            if (n < 2) break; // если второй такой буквы в слове нет, то слово не подходит под условие
                              // переход к анализу следующего слова
            n = 1; // если вторая буква найдена, переход к анализу следующей буквы в этом слове
        }
        if (flag == 1) // вывод слова, соответствующего условию
        {
            printf("%s\n", str[i]);
            flag = 0;
        }
    }
    
    getch();
    return 0;
}
 
Текущее время: 01:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru