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

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

Восстановить пароль Регистрация
 
TTT34
 Аватар для TTT34
125 / 41 / 3
Регистрация: 06.12.2012
Сообщений: 246
16.12.2012, 21:52     Программа подсчета слов, база данна #1
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 минут
ммммм..... я как бы все еще жду помощи ...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 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
Сообщений: 246
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     Программа подсчета слов, база данна
Ответ Создать тему
Опции темы

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