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

Написать функцию, возвращающую количество гласных в произвольном слове - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
14.05.2012, 15:34     Написать функцию, возвращающую количество гласных в произвольном слове #1
Написать функцию, возвращающую количество гласных в произвольном слове. С помощью нее, определить в тексте слово с максимальным количеством гласных.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 15:34     Написать функцию, возвращающую количество гласных в произвольном слове
Посмотрите здесь:

C++ написать функцию, возвращающую массив
как написать функцию возвращающую объект с указателем на кучу C++
Написать функцию, возвращающую количество цифр в строке. C++
C++ Подсчитать количество гласных букв в каждом слове предложения
C++ Подсчитать количество русских гласных букв в последнем слове текста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.05.2012, 15:58     Написать функцию, возвращающую количество гласных в произвольном слове #2
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
int count(string s, int begin, int end)
{
 int i;
 int r;
 char c;
 for (r=0, i=begin; i<=end; ++i)
 {
  c=s[i];
  switch (c)
  {
   case 'у':
   case 'У':
   case 'е':
   case 'Е':
   case 'ы':
   case 'Ы':
   case 'а':
   case 'А':
   case 'о':
   case 'О':
   case 'э':
   case 'Э':
   case 'я':
   case 'Я':
   case 'и':
   case 'И':
   case 'ю':
   case 'Ю':
   case 'ё':
   case 'Ё':
   ++r;
  }
 }
}
int SearchEnd(string s, int begin) //Границы слова определяются здесь, слова с дефисами не учитываются.
{
 int i;
 int L;
 char c;
 L=s.lenght();
 for (i=begin; i<=L; ++i)
 {
  c=s[i];
  if ((c!='й')&&(c!='ц')&&(c!='у')&&(c!='к')&&(c!='е')&&(c!='н')&&(c!='г')&&(c!='ш')&&(c!='щ')&&(c!='з')&&(c!='х')&&(c!='ъ')&&(c!='ф')&&(c!='ы')&&(c!='в')&&(c!='а')&&(c!='п')&&(c!='р')&&(c!='о')&&(c!='д')&&(c!='ж')&&(c!='э')&&(c!='я')&&(c!='с')&&(c!='м')&&(c!='и')&&(c!='т')&&(c!='ь')&&(c!='б')&&(c!='ю')&&(c=='ё')&&(c!='Й')&&(c!='Ц')&&(c!='У')&&(c!='К')&&(c!='Е')&&(c!='Н')&&(c!='Г')&&(c!='Ш')&&(c!='Щ')&&(c!='З')&&(c!='Х')&&(c!='Ъ')&&(c!='Ф')&&(c!='Ы')&&(c!='В')&&(c!='А')&&(c!='П')&&(c!='Р')&&(c!='О')&&(c!='Л')&&(c!='Ж')&&(c!='Э')&&(c!='Я')&&(c!='Ч')&&(c!='М')&&(c!='И')&&(c!='Т')&&(c!='Ь')&&(c!='Б')&&(c!='Ю')&&(c=='Ё'))
  {
   break;
  }
 }
 return i;
}
stirng max(string s)
{
 int begin;
 int end;
 int L;
 int m;
 int c;
 int m;
 string r;
 int i;
 for (r="", m=0, begin=1, end=SearchEnd(s, begin), L=s.length; end<L; begin=end, end=SearchEnd(s, begin))
 {
  c=count();
  if (c>m)
  {
   m=c;
   for (i=begin, r=""; i<=end; ++i)
   {
    r+=s[i];
   }
  }
 }
 return r;
}
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
15.05.2012, 11:37  [ТС]     Написать функцию, возвращающую количество гласных в произвольном слове #3
Написать функцию, возвращающую количество гласных в произвольном слове. С помощью нее, определить в тексте слово с максимальным количеством гласных.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
 
int _tmain(int argc, _TCHAR* argv[])
{cоnst a=['а','е','ё','и','о','у','э','ю','я']; 
function kol(s:String):Integer; 
var i,k:Integer; 
begin 
k:=0; 
for i:=1 to length(s) do begin 
if s[ i] in ['А'..'Я'] then s[ i]:=chr(ord(s[ i])+32); 
if s[ i] in a then inc(k); 
end; 
 
 
    return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
15.05.2012, 12:19     Написать функцию, возвращающую количество гласных в произвольном слове #4
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
#include <iostream>
#include <string>
using namespace std;
int kol(string s)
{ 
   cоnst char a[]={'а','е','ё','и','о','у','э','ю','я','А','Е','Ё','И','О','У','Э','Ю','Я'}; 
   int k=0; 
   for(int i=0;i<s.length();i++) 
   {
      for(int j=0;j<sizeof(a);j++)
         if(s[ i]==a[j])
         {k++;break;} 
   }
   return k; 
} 
int main()
{
   SetLocale(LC_ALL,"Rus");
   string s;
   cin>>s;
   int n=kol(s);
   cout<<n;
   return 0;
}
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
16.05.2012, 21:22  [ТС]     Написать функцию, возвращающую количество гласных в произвольном слове #5
Все равно находит ошибки
Ошибка 8 error C2070: 'unknown-type': недопустимый оператор sizeof
Ошибка 5 error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
Ошибка 10 error C3861: SetLocale: идентификатор не найден
Ошибка 14 IntelliSense: идентификатор "SetLocale" не определен
и еще ошибки..
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
16.05.2012, 21:41     Написать функцию, возвращающую количество гласных в произвольном слове #6
Напишите setlocale (все буквы маленькие).
А остальное у меня компилируется без ошибок.
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
20.05.2012, 12:54  [ТС]     Написать функцию, возвращающую количество гласных в произвольном слове #7
Всем доброго времени суток, помогите пожалуйста сделать задачу..
Написать функцию, возвращающую количество гласных в произвольном слове. С помощью нее, определить в тексте слово с максимальным количеством гласных.
Вот мой вариант кода , но он не выдает нужного результата... если видите ошибку подскажите..
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
#include "stdafx.h"
#include <iostream>
#include <string>
 
 
using namespace std;
int kol(string s)
{ 
    char a[]={'а','е','ё','и','о','у','э','ю','я','А','Е','Ё','И','О','У','Э','Ю','Я'}; 
   int k=0; 
   for(int i=0;i<s.length();i++) 
   {
      for(int j=0;j<sizeof('a');j++)
         if(s[ i]==a[j])
         {k++;break;} 
   }
   return k; 
} 
int main()
{
   setlocale(LC_ALL,"Rus");
   string s;
   cin>>s;
   int n=kol(s);
   cout<<n;
   return 0;
}
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
20.05.2012, 13:54     Написать функцию, возвращающую количество гласных в произвольном слове #8
C++
1
for(int j=0;j<sizeof('a');j++)
здесь в условие вам нужен размер массива а, а не размер одного символа типа char
C++
1
sizeof(a)
вообще у класса стринг есть методы поиска
и еще, я бы на вашем месте поначалу поверял все на латинском алфавите, мало ли что))
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
20.05.2012, 13:55     Написать функцию, возвращающую количество гласных в произвольном слове #9
C++
1
sizeof('a')
sizeof('a') = 1 - размер символа, а вам нужен размер массива: sizeof(a)/sizeof(a[0]) или просто sizeof(a)

Попробуйте вывести коды одного и того же символа введенного с клавиатуры и заданного в программе
C++
1
2
3
    char ch;
    cin >> ch;
    cout << (int)'й' << endl << (int)ch;
По всей видимости разные кодировки и у меня, например, вывело разные числа)
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
20.05.2012, 14:12  [ТС]     Написать функцию, возвращающую количество гласных в произвольном слове #10
Заменил на
C++
1
sizeof(a)
но все равно когда ввожу текст в консоли.. затем появляется не правильно число
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
20.05.2012, 14:21     Написать функцию, возвращающую количество гласных в произвольном слове #11
Я бы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int kol(string str)
{
    string pattern = "аеёиоуэюя";
    int k = 0;
    for(int i=0;i<str.length();i++)
    {
        for(int j=0;j<sizeof(pattern);j++)
        {
            
           if(tolower(str[i]) == a[c])
            {
                k++;
            }
        }        
    }
return k;
    
}
Это если надо определять в русских словах, а для других добавить буквы в pattern.
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
20.05.2012, 14:34  [ТС]     Написать функцию, возвращающую количество гласных в произвольном слове #12
У вас выдает массу ошибок к сожелению... но может ваша идея правильна.. но имеет ошибки в коде

Добавлено через 3 минуты
а при запуске. и вводе слов пишет 0
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
20.05.2012, 15:18     Написать функцию, возвращающую количество гласных в произвольном слове #13
Я пишу на wxDev-C++. Вот весь код:
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
#include <cstdlib>
#include <iostream>
#include <string>
#include <ctype.h>
 
 
using namespace std;
 
int kol(string str)
{
    string a = "aeiu";
    int k = 0;
    for(int i=0;i<str.length();i++)
    {
        for(int c=0;c<sizeof(a);c++)
        {
            
           if(tolower(str[i]) == a[c])
            {
                k++;
            }
        }        
    }
return k;
    
}
int main(int argc, char *argv[])
{
    string s;
    cout << ": ";
    cin>>s;
    int n=kol(s);
    cout<<n;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Да и работает только с английскими словами.
Aaaaa111
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 25
21.05.2012, 23:05  [ТС]     Написать функцию, возвращающую количество гласных в произвольном слове #14
Спасибо.. но не могу понять почему после ввода слов и нажатие ЕНТЕР вылазит окно с ошибкой..При этом при отладки ошибок не находит
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2012, 10:17     Написать функцию, возвращающую количество гласных в произвольном слове
Еще ссылки по теме:

Написать функцию, возвращающую случайное число от 2 до 6 C++
Написать функцию, возвращающую квадрат переданного ей параметра C++
Написать функцию, возвращающую сумму всех элементов массива C++

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

Или воспользуйтесь поиском по форуму:
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
22.05.2012, 10:17     Написать функцию, возвращающую количество гласных в произвольном слове #15
Цитата Сообщение от Вася97 Посмотреть сообщение
Я пишу на wxDev-C++.
А вы полагаю открывали в Visual C++. К тому же как писал:
Цитата Сообщение от Вася97 Посмотреть сообщение
Да и работает только с английскими словами.
Yandex
Объявления
22.05.2012, 10:17     Написать функцию, возвращающую количество гласных в произвольном слове
Ответ Создать тему
Опции темы

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