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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MixaelMitre
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 22
#1

Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна - C++

16.11.2014, 14:45. Просмотров 614. Ответов 6
Метки нет (Все метки)

Доброго времени суток!
Собственно начну с задания: Разработать программу, определяющую во введенном тексте на английском языке слово, в котором доля гласных (a, e, i, o, u, y) максимальна.

а вот примерный код (не работающий )

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
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
void main()
{
char string[256];
char st[60];
char maxstr[60];
char *blank="";
double k=0.0;
strcpy(st,blank);
strcpy(maxstr,blank);
 
printf("Vvedite stroku:");
gets(string);
strcat(string," ");
 
for (int i=0;i < strlen(string);i++)
if (string[i] == ' ' && strlen(st) != 0)
{
int count = 0;
for (int j=0;j < strlen(st);j++)
if (st[j] == 'a' || st[j] == 'e' || st[j] == 'i' || st[j] == 'o' || st[j] == 'u' || st[j] == 'y')
{
count++;
}
 
double l = (double)count/strlen(st);
if (l > k)
{
k=l;
strcpy(maxstr,st);
}
strcpy(st,blank);
} else
if (string[i] != ' ')
{
char *ch;
strcpy(ch, string+i);
ch[1] = '\0';
strcat(st,ch);
}
printf("Slovo s maximalnim kol-vom glasnih: %s\n",maxstr);
getch();
}
Помогите разобраться где тут ошибка и что добавить для выполнения тех задания (я так понимаю доли = кол-во гласных/размер слова)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 14:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна (C++):

Во введенном тексте указать слово, в котором доля гласных (а, е, о) максимальна - C++
Во введенном тексте указать слово, в котором доля гласных (а, е, о) максимальна. Программа работает, но иногда выдает неправильно ответ....

Во введенном тексте указать слово, в котором доля гласных (а, е, о) максимальна - C++
Во введенном тексте указать слово, в котором доля гласных (а, е, о) максимальна.

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

В данном предложении указать слово, в котором доля гласных (А, Е, I, О) максимальна - C++
Помогите написать на с++ В данном предложении указать слово, в котором доля гласных (А, Е, I, О) максимальна.

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

В предложении найти слово, в котором количество гласных максимально - C++
Всем привет! У меня одна небольшая проблема - я не затрудняюсь в написании алгоритма задач, но нам не объясняют строки в С++ и я просто...

6
RyanMarrero
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 1
16.11.2014, 15:00 #2
Не в тему,но все-же зачем писать текст на транслите(Это когда вот так:"Privet"),воспользуйся этим:
C++
1
setlocale(0, "");
И тебе не придется писать на транслите,пиши сразу на русском.
P.S Работает в VS и в Dev-C++,в других не пробовал.
0
MixaelMitre
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 22
16.11.2014, 15:03  [ТС] #3
я знаю о setlocale, просто я торопился. при оформлении исправлю
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.11.2014, 15:28 #4
MixaelMitre,
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
#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
    const std::string vowels = "aeiouy";
 
    std::string str;
    std::getline(std::cin, str);
 
    std::stringstream ss(str);
 
    std::string maxWord;
 
    int maxVowels = 0;
    int curVowels = 0;
 
    while (ss >> str)
    {
        curVowels = std::count_if(str.begin(), str.end(), [vowels](const char& c) {
            return (vowels.find(c) != std::string::npos);
        });
 
        if (curVowels > maxVowels) {
            maxVowels = curVowels;
            maxWord = str;
        }
    }
 
    std::cout << maxWord << std::endl;
 
    return 0;
}
2
Кот Ангенс
318 / 268 / 38
Регистрация: 24.05.2012
Сообщений: 629
16.11.2014, 15:33 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://ideone.com/79sG9m

Добавлено через 1 минуту
Issues, требуется максимальная доля гласных, а не количество.
2
MixaelMitre
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 22
16.11.2014, 16:00  [ТС] #6
Спасибо вам огромное!
0
8Observer8
16.11.2014, 16:02     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна
  #7

Не по теме:

Цитата Сообщение от RyanMarrero Посмотреть сообщение
P.S Работает в VS и в Dev-C++,в других не пробовал
В Qt нужно по-другому, если это был бы Qt

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 16:02
Привет! Вот еще темы с ответами:

Найти все слова, в которых доля букв a, b максимальна - C++
Дан текст.Группы слов,разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя,будем называть, как и прежде...

Найти все слова,в которых доля букв a,b максимальна. - C++
Дан текст.Группы слов,разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя,будем называть, как и прежде...

Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) - C++
Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!!...

Найти квадрат матрицы, в котором сумма диагональных элементов максимальна - C++
В двумерном массиве найдите квадрат размером 3х3,в котором сумма диагональных элементов максимальна.Выведите его на экран. Только начинаю...


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

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

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