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

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

Восстановить пароль Регистрация
 
MixaelMitre
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 22
16.11.2014, 14:45     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна #1
Доброго времени суток!
Собственно начну с задания: Разработать программу, определяющую во введенном тексте на английском языке слово, в котором доля гласных (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();
}
Помогите разобраться где тут ошибка и что добавить для выполнения тех задания (я так понимаю доли = кол-во гласных/размер слова)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 14:45     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна
Посмотрите здесь:

C++ Найти слово где наименьшее количество гласных
C++ [C++] Найти все слова,в которых доля букв a,b максимальна.
C++ Найти все слова,в которых доля букв a,b максимальна.
C++ Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна)
C++ Найти слово с наибольшим количеством гласных букв
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RyanMarrero
Сообщений: n/a
16.11.2014, 15:00     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна #2
Не в тему,но все-же зачем писать текст на транслите(Это когда вот так:"Privet"),воспользуйся этим:
C++
1
setlocale(0, "");
И тебе не придется писать на транслите,пиши сразу на русском.
P.S Работает в VS и в Dev-C++,в других не пробовал.
MixaelMitre
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 22
16.11.2014, 15:03  [ТС]     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна #3
я знаю о setlocale, просто я торопился. при оформлении исправлю
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.11.2014, 15:28     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна #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;
}
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
16.11.2014, 15:33     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://ideone.com/79sG9m

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

Не по теме:

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

Yandex
Объявления
16.11.2014, 16:02     Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна
Ответ Создать тему
Опции темы

Текущее время: 15:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru