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

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

Войти
Регистрация
Восстановить пароль
 
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
#1

немагу разобратся ввод слова - C++

23.04.2009, 08:29. Просмотров 882. Ответов 10
Метки нет (Все метки)

привет бъюсь 3й день немагу тллком решить задачку
я не учусь в вузе и не работают программером я просто нубик самоучка

дано такое задание
напишите программу которая читает по одному слову за раз,пака не будет введено отдельная буква "q"
после этого прога должна сообщить кол-во слов начинающихся с гласных, коль-во слов начинающихся с согласных и также коль-во не попадающие под эти два значения
вроде у меня пачти выходит да тока чето не хватает (решаю по книге С Прата С++ 1200стр глава 6 упраж 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
28
29
30
31
32
33
34
 
int main()
{
char ch;
int gls=0;
int sog=0;
int ost=0;
while(cin.get(ch))
{
if(isalpha(ch))
{ 
if(ch=='q')
break;
else
{
switch(ch)
{
case'a':++gls;
case'e':++gls;
case'u':++gls;
case'i':++gls;
casr'o':++gls;
default:++sog;
}
} 
}
 
else
++ost;
cin.get(ch);
}
cout<<gls<<sog<<ost<<endl;
return 0;
}
пример толжен быть таким
Вводите слова (q-для выхода)
The 12 awesome oxen ambled
quietly across 15 meters of lawn. q
5 слов с гласных
4 с согласных
2 остальных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2009, 08:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос немагу разобратся ввод слова (C++):

немагу найти ошибки - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { double z1,z2,a; cout&lt;&lt;&quot;a&quot;&lt;&lt;endl; ...

немагу найти ошибку - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; using namespace std; void...

Структуры.Не разбираюсь в структурах!!!Немагу сделать програмку!((( - C++
Известны данные о 20 сотрудников фирмы (фамилия, пол, зарплата и должность). Определить: 1) фамилия, имеющего самую большую зарплату; ...

Ввод строки до определенного слова - C++
Нужно организовать ввод строки, пока не будет введено ключевое слово &quot;stop&quot;. После ввода ключевого слова программа выводит строку до него и...

Ввод слова и вывод его в обратном порядке - C++
символьные массивы

Файловый ввод и поиск самого длинного слова в тексте - C++
Здравствуйте. Нужно написать программу, которая вводит текст, состоящий из нескольких предложений, находит самое длинное слово и...

10
jds_07
28 / 27 / 1
Регистрация: 12.03.2009
Сообщений: 85
23.04.2009, 09:34 #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
const int MAX_LENGTH_LIST = 1000;
const int MAX_LENGTH_WORD = 255;
 
char** list = new char**[MAX_LENGTH_LIST];
char* buffer = new char*[MAX_LENGTH_WORD];
int i = 0, k = 0;
int gls, sog;
int is_q = 0;
gls = sog = 0;
buffer[0] = '\0';
while (std::cin.get(ch)) {
    if (ch == 'q') {
      is_q = 1;  
    }
    switch (ch) {
      case 'a': gls++; break;
      case 'e': gls++; break;
      case 'u': gls++; break;
      case 'i': gls++; break;
      case 'o': gls++; break;
      default:  if (is_q == 0) sog++;
    }
    if (ch != ' ') {
        buffer[i] = ch;
        i++;
    } else {
        buffer[i] = '\0';
        list[k] = new char*[MAX_LENGTH_WORD];
        int j = 0;
        for (j = 0; j < strlen(buffer); j++) {
            list[k][j] = buffer[j];
        }
        list[k][j] = '\0';
        buffer[0] = '\0';
        i = 0;
        k++;        
        if (is_q == 1) break;
    }
}
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
23.04.2009, 14:46  [ТС] #3
ого кодик а что без массивов некак непалучится
0
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
23.04.2009, 15:24 #4
Ну так введи все гласные в switch(ch) в английском алфавите,а другие буквы через
if(ch!="*/гласные все напиши через запятую*/"&&ch!='e'&&ch!='a'......)
{
*/согласные прибавляй*/
}
что то типа такого
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
23.04.2009, 15:35  [ТС] #5
а пачему бы не задейсвовать
C++
1
isalpha()
для индефикации что ch это буква
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.04.2009, 16:08 #6
подсчитывает всё, неспеша
0
Вложения
Тип файла: zip prata_words.zip (1.0 Кб, 18 просмотров)
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
23.04.2009, 16:20  [ТС] #7
Цитата Сообщение от accept Посмотреть сообщение
подсчитывает всё, неспеша
хз чето у тебя стока всего
у меня вабще 6 глава там про логические операторы=)
при чем тут массивы
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.04.2009, 07:43 #8
Цитата Сообщение от Мегатрон
напишите программу которая читает по одному слову за раз
слово - это массив символов (букв)
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 07:47  [ТС] #9
лана седня вечерком покубатурю с этим упражнением
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,199
Завершенные тесты: 1
24.04.2009, 23:37 #10
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    const string vowels("AEIOUaeiouАЕЁИОУЫЭЮЯаеёиоуыэюя");
    const string consonants("BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz"
        "БВГДЖЗЙКЛМНПРСТФХЦЧШЩбвгджзйклмнпрстфхцчшщ");
    const string blank(" \t\n");
 
    cout << "Всякие слова:\n";
    int nv = 0;
    int nc = 0;
    int no = 0;
    for (char c = cin.get(); ; )
    {
        if (c == 'q' && blank.find(cin.peek()) != string::npos)
            break;
        if (vowels.find(c) != string::npos)
            nv++;
        else if (consonants.find(c) != string::npos)
            nc++;
        else
            no++;
        while (blank.find(c = cin.get()) == string::npos);
        while (blank.find(c = cin.get()) != string::npos);
    }
    cout << nv << " с гласной, " << nc << " с согласной, " << no << " с прочей фигни";
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    cin.peek();
}
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
26.04.2009, 09:20  [ТС] #11
чет ребята как бы идею уловил но чето плохо доходит

C++
1
2
3
4
5
 
char** list = new char**[MAX_LENGTH_LIST];
peek()
find
ignore(numeric_limits<streamsize>::max(),
вот такие я еще не проходил)
я тока с 1 по 6 главу тока прочитал( С++ Прата)
0
26.04.2009, 09:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2009, 09:20
Привет! Вот еще темы с ответами:

Строковый ввод-вывод и считывание последнего слова в строке - C++
Добрый вечер. Возник вопрос по следующей задаче: &quot;1) Скопировать из файла F1 в файл F2 строки, начиная с 4. 2) Подсчитать количество...

Cделать ввод с клавиатуры 20 слов и найти индекс максимального слова - C++
Нужно сделать ввод с клавиатуры 20 слов и найти индекс максимального слова. Может у кого-то есть идеи?

Как считывать слова/цифры пока не закончился ввод пользователем - C++
Как считывать слова/цифры пока не закончился ввод пользователем

Ввод имени в программу с клавиатуры, содержащее 2 или более слова - C++
Помогите, пожалуйста, сделать возможным ввод имени, состоящего из нескольких слов. Например, пункт назначения &quot;Москва&quot; читается без...


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

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

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