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

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

Войти
Регистрация
Восстановить пароль
 
TTT34
 Аватар для TTT34
125 / 41 / 3
Регистрация: 06.12.2012
Сообщений: 249
#1

Программа подсчета слов, база данна - C++

16.12.2012, 21:52. Просмотров 554. Ответов 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
25
26
#include "stdafx.h"
#define    YES  1 
#define    NO   0 
 
main()  /* count lines, words, chars in input */ 
{  
int c, nl, nw, inword;     
inword = no;     
nl = nw = nc = 0; 
while((c = getchar()) != EOF)  
{         
++nc; 
if (c == '\n')              
++nl; 
if (c==' ' || c=='\n' || c=='\t')              
inword = no; 
         
else if 
(inword == no)  
{              
inword = yes; 
++nw;         
}     
} 
     printf("%d %d %d\n", nl, nw, nc); 
}
Собственно вот код, как база. Хотя если вы располагаете чем то получше...
Не понимаю что не так, выдает ошибки о необъявленных идентификаторах.
Программа чисто теоретически должна подсчитывать слова, но она вроде как считает что "слово" это любая последовательность символов, а должна считать, что "слово" это последовательность символов начинающих с буквы.
Ну что ?

Добавлено через 7 часов 35 минут
ммммм..... я как бы все еще жду помощи ...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 21:52     Программа подсчета слов, база данна
Посмотрите здесь:

C++ функция подсчета слов
C++ Программа подсчета количесва указанных слов в тексте
C++ Улучшение алгоритма подсчета строк, букв, слов
C++ Неконтролируемое завершение программы подсчета введенных слов
C++ Функция подсчета слов, состоящих из одной буквы
C++ Программа подсчета символов и слов в минуту
Программа подсчета строк, слов и символов не выводит результат C++
C++ Программа для подсчета частоты вхождения слов
Программа для подсчета уровня частоты вхождений слов C++
C++ Программа для подсчета уровня частоты вхождений слов
Программа для подсчета частоты вхождения слов C++
C++ Написать программу подсчета количество слов в строке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.12.2012, 22:00     Программа подсчета слов, база данна #2
Цитата Сообщение от TTT34 Посмотреть сообщение
nc
не обьявлен.

Добавлено через 1 минуту
Цитата Сообщение от TTT34 Посмотреть сообщение
#define YES 1
#define NO 0
во всех местах, где вы используете их, они должны быть в верхнем регистре, а не в нижнем.
TTT34
 Аватар для TTT34
125 / 41 / 3
Регистрация: 06.12.2012
Сообщений: 249
17.12.2012, 00:02  [ТС]     Программа подсчета слов, база данна #3
Цитата Сообщение от SeregaC++ Посмотреть сообщение
не обьявлен.

Добавлено через 1 минуту

во всех местах, где вы используете их, они должны быть в верхнем регистре, а не в нижнем.
а не могли бы вы отредактировать программу ?

Добавлено через 31 минуту
мммм.... я как бы все еще жду помощи

Добавлено через 29 минут
хелп ми
-=ЮрА=-
Заблокирован
Автор FAQ
17.12.2012, 00:06     Программа подсчета слов, база данна #4
TTT34, лови свой код, я лишь немного его подправил и ввёл пару поясняющих коментариев
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 <iostream>
using namespace std;
 
int main()  /* count lines, words, chars in input */ 
{  
    char c;
    int nc, nl, nw, inword;     
    inword = nl = nw = nc = 0; 
    while((c = getchar()) != '/')  
    {         
        nc++; //Увеличиваем счётчик символов
        if(c == '\n')  //Если символ перевода строки            
            nl++;//увеличиваем счётчик строк 
        if (c==' ' || c=='\n' || c=='\t')              
            inword = 0; //Если введе один из символов условия - сбрасываем флаг слова
        else 
        if(inword == 0)//если введен не пробле и не табуляция и флаг слова сброшен  
        {              
            inword = 1; //то такая ситауция сигнализирует о начале нового слова
            nw++;//увеличиваем счётчик слов         
        }     
    } 
    cout<<"lines : "<<nl<<endl;
    cout<<"words : "<<nw<<endl;
    cout<<"chars : "<<nc<<endl;
    return 0;
}
Миниатюры
Программа подсчета слов, база данна  
-=ЮрА=-
Заблокирован
Автор FAQ
17.12.2012, 21:46     Программа подсчета слов, база данна #5
TTT34, именно для подсчёта слов начинающихся с букв
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 <iostream>
using namespace std;
 
int main()  /* count lines, words, chars in input */ 
{  
    char c;
    int nc, nl, nw, inword;     
    inword = nl = nw = nc = 0; 
    while((c = getchar()) != '/')  
    {         
        nc++; //Увеличиваем счётчик символов
        if(c == '\n')  //Если символ перевода строки            
            nl++;//увеличиваем счётчик строк 
        if (c==' ' || c=='\n' || c=='\t' || !isalpha(c))              
            inword = 0; //Если введе один из символов условия - сбрасываем флаг слова
        else 
        if(inword == 0 && isalpha(c))//если введен не пробле и не табуляция и флаг слова сброшен  
        {              
            inword = 1; //то такая ситауция сигнализирует о начале нового слова
            nw++;//увеличиваем счётчик слов         
        }     
    } 
    cout<<"lines : "<<nl<<endl;
    cout<<"words : "<<nw<<endl;
    cout<<"chars : "<<nc<<endl;
    return 0;
}
PS: isalpha - функция из ctype.h (хедер автоматом подключается через using namespace std)
isalpha(char symbol)
вернёт истину если symbol - буква латиницы
Миниатюры
Программа подсчета слов, база данна  
Yandex
Объявления
17.12.2012, 21:46     Программа подсчета слов, база данна
Ответ Создать тему
Опции темы

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