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

Вывести те слова из текста на экран, которые отсортированы по количеству гласных букв - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какой контейнер в STL и для чего эффективнее использовать? http://www.cyberforum.ru/cpp-beginners/thread1498826.html
Какой контейнер в STL и для чего эффективнее использовать? И почему
C++ Как сделать execl("my", "arg", argv)? Пытаюсь сделать программу под linux. Нужен такой код, который бы запускал execl с двумя моими параметрами и всеми параметрами из argv кроме первого (имя приложения). Пытался преобразовать argv в... http://www.cyberforum.ru/cpp-beginners/thread1498800.html
Не инициализируются переменные в констукторе класса C++
Не хотят инициализироватся данные после двоеточия, в следствие чего нельзя создать объект данного класса. При инициализации в теле конструктора с помощью присваивания проблем не возникает. #ifndef...
C++ Ошибки при Solutions Configuration->Release
Здравствуйте! Я пишу программу на С++ Win APi. Если поставить Solutions Configuration->Debug, программа работает нормально, то если поменять на Solutions Configuration->Release, появляется 25 ошибок...
C++ Неразрешенный внешний символ http://www.cyberforum.ru/cpp-beginners/thread1498727.html
Здравствуйте. Не понимаю почему возникает ошибка. Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ "class Token __cdecl get_token(void)" (?get_token@@YA?AVToken@@XZ) в...
C++ Возможно ли вложение контейнера array в контейнер vector? мне надо в динамическом массиве хранить 3-х мерные координаты треугольников. пытаюсь сделать вот так: vector<array<float,9> > coordinates; данная комбинация не работает. подробнее

Показать сообщение отдельно
Sn1p3rOk
281 / 168 / 66
Регистрация: 19.04.2014
Сообщений: 1,083
Завершенные тесты: 2
14.07.2015, 20:06
dfsdfgfsdg, вот решение. Не самый короткий, но наверное самый примитивный вариант.
Кликните здесь для просмотра всего текста
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
// Подсчет кол-ва слов в файле
int CountWords(ifstream &file)
{
    string str;
    int countWords = 0;
 
    file.open("test.txt", ios::in);
 
    while(!file.eof())
    {
        getline(file, str, ' ');
        countWords ++;
    }
 
    file.close();
 
    return countWords;
}
 
// Чтения слов из файла
void ReadFile(ifstream &file, char** words)
{
    file.open("test.txt", ios::in);
 
    int i = 0;
    char tempStr[10];
 
    while (!file.eof())
    {
        file >> tempStr;
 
        strcpy(words[i], tempStr);
 
        i ++;
    }
 
    file.close();
}
 
// Подсчет кол-ва гласных букв в каждом слове
void CountVowels(int countWords, int* countVowels, char** words)
{
    char vowels[20] = {'А', 'а', 'Я', 'я', 'О', 'о', 'Ё', 'ё', 'У', 'у', 'Ю', 'ю', 'Ы', 'ы', 'И', 'и', 'Э', 'э', 'Е', 'е' };
 
    for (int i = 0; i < countWords; i ++)
    {
        countVowels[i] = 0;
 
        for(int j = 0; j < 10; j ++)
        {
            for (int z = 0; z < 20; z ++)
            {
                if (words[i][j] == vowels[z])
                {
                    countVowels[i] ++;
                    break;
                }
            }
        }
    }
}
 
// Сортировка и вывод в консоль
void SortAndOutput(int countWords, int* countVowels, char** words)
{
    for (int i = 0; i < countWords; i ++)
    {
        for (int j = i + 1; j < countWords; j ++)
        {
            if (countVowels[i] > countVowels[j])
            {
                int temp = countVowels[i];
                countVowels[i] = countVowels[j];
                countVowels[j] = temp;
 
                char tempStr[10];
 
                strcpy(tempStr, words[i]);
                strcpy(words[i], words[j]);
                strcpy(words[j], tempStr);
            }
        }
 
        cout << "Гласных : " << countVowels[i] << " ~ " << words[i] << endl;
    }
}
 
int main()
{
    setlocale(LC_ALL, "russian");
 
    ifstream file;
    int countWords = CountWords(file);
 
    int* countVowels = new int[countWords];
 
    char** words = new char*[countWords];
    for (int i = 0; i < countWords; i ++)
    {
        words[i] = new char[10];
    }
 
    ReadFile(file, words);
 
    CountVowels(countWords, countVowels, words);
 
    SortAndOutput(countWords, countVowels, words);
 
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru