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

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

Войти
Регистрация
Восстановить пароль
 
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
#1

В предложении найти слово, в котором количество гласных максимально - C++

02.11.2009, 22:21. Просмотров 1012. Ответов 12
Метки нет (Все метки)

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

В предложении найти слово, в котором количество гласных максимально.

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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
void main(){
string p;
int i,j,l,m=0,k=0,n;
getline(cin, p);
n=p.size();
cout<<n;
string g="aeiouy";
for (i=0;i<n;i++){
while (p[i]!=' '){
for (j=0;j<6;j++) {
if (p[i]==g[j]) k++;
};
i++;
};
if (k>m){
l=i;
m=k;
k=0;
}
else k=0;
 
};
for (i=0;i<l;i++)
cin>>p[i];
 
}
И еще вот так делала, в принципе одно и то же

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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
void main(){
setlocale( LC_ALL, "Russian" );
int m=0,l,k=0,i,j;
string p;
getline(cin,p);
int len=p.size();
string g="ёуеыаоэяиюЁУЕЫАОЭЯИЮ";
for (i=0;i<len;i++){
while (p[i]!=' '){
for (j=0;j<20;j++) {
if (p[i]==g[j]) k++;
};
i++;
};
if (k>m){
l=i;
m=k;
k=0;
}
else k=0;
 
};
for (i=0;i<l;i++)
cout<<p[i];
}
Ну где у меня ошибка><
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2009, 22:21     В предложении найти слово, в котором количество гласных максимально
Посмотрите здесь:

C++ Найти в тексте слово, содержащее наибольшее количество гласных
C++ Найти слово где наименьшее количество гласных
C++ Найти слово, в котором наибольшее количество разных букв
Найти в предложении количество слов начинающихся на ту же букву,что и первое слово и удалить их C++
C++ В заданном предложении указать слово, в котором доля гласных максимальна
C++ Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна
Во введенном тексте указать слово, в котором доля гласных (а, е, о) максимальна C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
audiophile
9 / 9 / 0
Регистрация: 01.11.2009
Сообщений: 67
02.11.2009, 22:50     В предложении найти слово, в котором количество гласных максимально #2
А вы
C++
1
while (p[i]!=' ')
на
C++
1
while (p[i]!=' ' && i < n)
замените.
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
02.11.2009, 23:08  [ТС]     В предложении найти слово, в котором количество гласных максимально #3
В первом варианте тревоги не выдает но и слово не пишет, во втором пишет сию глупость "аЁу?в"
Может я не так написала штуку, чтобы он на русском работал?
Я просто какую штуку в интернете нашла, ту и вставила.
И может кто-нить знает хорошую понятную книжку для получайников по С++ или хотя б какой-то норм материал по строкам, а то у меня еще висит задачка, но я ее сама добью, только разберусь, как это дело задавать надо.
audiophile
9 / 9 / 0
Регистрация: 01.11.2009
Сообщений: 67
02.11.2009, 23:22     В предложении найти слово, в котором количество гласных максимально #4
В первом случае у вас вообще вывода то и нет. Посмотрите внимательно на последний цикл — там cin.
Мне как чайнику нравится пока что липман и лафоре.
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
02.11.2009, 23:31  [ТС]     В предложении найти слово, в котором количество гласных максимально #5
Кстати, а в чем разница? я ж в цикле выше уже прописала, что цикл работает пока i меньше n?

Добавлено через 1 минуту
Чоооооооооооооооооооорд...................................(простите, не сдержалась)
ааааааааааааааааа........*ругается на свою невнимательность*

Добавлено через 4 минуты
Все, выводит, и у меня ошибка где-то в алгоритме, но я сама там уже разберусь, главное выводит...
Спасибо!!! Я уже сколько с ней мучаюсь, все сдать не могу!)))
audiophile
9 / 9 / 0
Регистрация: 01.11.2009
Сообщений: 67
02.11.2009, 23:44     В предложении найти слово, в котором количество гласных максимально #6
*ругается на свою невнимательность*
Бывает .
egornefor
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 14
03.11.2009, 01:09     В предложении найти слово, в котором количество гласных максимально #7
И ещё можно русский подключить так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <windows.h>
 
using namespace std;
char* rus(const char* text);
 
void main()
{
 
    getch();
}
 
char bufrus[256];
char* rus(const char* text)
 
    {
        CharToOemA(text, bufrus);
        return bufrus;
    }
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
03.11.2009, 16:52  [ТС]     В предложении найти слово, в котором количество гласных максимально #8
тааак....не выводит нормально...я так изменила:

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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
void main(){
string p;
int i=0,j,l=-1,m=0,k=0,n,r;
getline(cin, p);
n=p.size();
string g="aeiouyAEIOUY";
for (i=0;i<n;i++){
    while (p[i]!=' ' && i < n){
        for (j=0;j<11;j++) {
if (p[i]==g[j]) k++;
};
if (k>m){
m=k;
k=0;
r=l;
l=i;
}
else k=0;
i++;
};
};
for (i=r+1;i<l;i++)
cout<<p[i];
}
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
06.11.2009, 23:34  [ТС]     В предложении найти слово, в котором количество гласных максимально #9
Ну хто-нить, ну найдите у меня маленькую глупую ошибку ><
denver
 Аватар для denver
1610 / 279 / 3
Регистрация: 19.09.2009
Сообщений: 701
07.11.2009, 00:13     В предложении найти слово, в котором количество гласных максимально #10
C++
1
for (i=r+1;i<l;i++)
ты внимательно смотрела с каким условием выполняется этот цикл
получается
C++
1
for (i=0;i<0;i++)
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
07.11.2009, 23:31  [ТС]     В предложении найти слово, в котором количество гласных максимально #11
стоп, почему?
в r - я записываю номер символа с которого печатать, а в l - по который
а что не так?
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,304
08.11.2009, 04:56     В предложении найти слово, в котором количество гласных максимально #12
Такие вещи надо отлаживать.
Открываю школу отлаживания вручную.
...Перед тем, как пойдёшь на цикл, выводящий гласные, посмотри, чему у тебя равно r и l;

Любым удобным способом. Лично я предпочитаю старый добрый проверенный временем сишный стиль.
C++
1
2
3
printf ("%d\n",r );
printf ("%d\n",l );
getchar ();
Увидишь сама, что тело цикла выполняться не будет.
Кроме того, даже если оно и будет выполняться, ты ничего не увидишь, если не запустишь свою прогу ИЗ КОМАНДНОЙ СТРОКИ

Добавлено через 1 час 3 минуты
А вообще неправильностей много.
Очень много.
Начать с того, что необходимо оформить досрочный выход из цикла. Путём break/
То есть найдена буква- всё, пошли следующую букву...

Короче, как я ни старался сделать исправленный код МАКСИМАЛЬНО приближенный к твоему- не получилось.
Херовый из меня программёр, наверное.

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
#include <iostream>
#include <string>
 
using namespace std;
 
int main(){
string p;
int i=0,j,l=-1,m=0,k=0,n,r, i1;
getline(cin, p);
n=p.size();
getchar ();
string g="aeiouyAEIOUY";
for (i=0;i<n;i++){
 
 k= 0;
 r= i;
 
 
 while (p[i]!=' ' && i < n ){
  for (j=0;j<11;j++) {
   if (p[i]==g[j]) {
    k++;
    break;
   }
  }
  i++;
 };
 
 
 if (k>m){
  m= k;
  l= r;
  p [i]= 0;
 }
 
 
 
};
 
 printf ("%s\n", &p [l] );
getchar ();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2009, 19:30     В предложении найти слово, в котором количество гласных максимально
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
08.11.2009, 19:30  [ТС]     В предложении найти слово, в котором количество гласных максимально #13
хахаха
вот из меня действительно пока программер плохой. Точнее, его пока во мне нет><
Спасибо.
Нам просто на программировании теорию нифига не дают, все приходиться изучать самим
Yandex
Объявления
08.11.2009, 19:30     В предложении найти слово, в котором количество гласных максимально
Ответ Создать тему
Опции темы

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