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

Подсчёт числа слов в предложении - исправить ошибки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 14:20     Подсчёт числа слов в предложении - исправить ошибки #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
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 int word = 1;
 int d= 0;
 int pr = 0;
 char ch;   
do{
if(ch == ' ') 
        {word++;
        d = word++;
}
else {
     pr = d/word;
     pr+=pr;
     d==0;   
     }}    
     while((ch = getche())!= '\r'); 
      cout << "words you use: " << pr << endl;
      system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 14:20     Подсчёт числа слов в предложении - исправить ошибки
Посмотрите здесь:

ввод слов в массив и подсчёт введённых слов C++
C++ Подсчёт слов в строке
C++ Подсчёт количества слов в предложении
Для заданного натурального пятизначного числа выполнить перестановку его крайних чётных цифр (исправить ошибки) C++
C++ Подсчет числа слов в предложении с использованием перечислений. Найти ошибку в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 14:39     Подсчёт числа слов в предложении - исправить ошибки #2
я не понимаю логику твоего кода я её просто не вижу вот лови может поможет
C++
1
2
3
4
5
6
7
#define DELIM " ,  ." 
char str[80],*p;
 int count=0;
 for(p = strtok(str, DELIM); p; p = strtok(NULL, DELIM))
{
count++;
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.03.2012, 14:52     Подсчёт числа слов в предложении - исправить ошибки #3
http://www.cyberforum.ru/cpp-beginne...ml#post2768156
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 15:06  [ТС]     Подсчёт числа слов в предложении - исправить ошибки #4
в книге Лафоре должно быть но я никак не могу найти
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
14.03.2012, 15:16     Подсчёт числа слов в предложении - исправить ошибки #5
C++
1
2
3
4
5
6
do {
       ch = getch();;
       if(ch == ' ') 
       word++;
   }
   while( ch != '\r');
так же проще
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 15:17     Подсчёт числа слов в предложении - исправить ошибки #6
может я путаю но нужно посчитать количество слов в предложение
C++
1
2
3
4
5
for(int i = 0;i < strlen (str); i++)
{
    if(str[i] == ' ')// или 2-ные ковычки
    count++;
}
так ещё проще
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
14.03.2012, 15:20     Подсчёт числа слов в предложении - исправить ошибки #7
Цитата Сообщение от A555 Посмотреть сообщение
может я путаю но нужно посчитать количество слов в предложение
co6ak, привёл тебе самый оптимальный код чего ещё нужно?
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 15:26  [ТС]     Подсчёт числа слов в предложении - исправить ошибки #8
Цитата Сообщение от A555 Посмотреть сообщение
может я путаю но нужно посчитать количество слов в предложение
C++
1
2
3
4
5
for(int i = 0;i < strlen (str); i++)
{
    if(str[i] == ' ')// или 2-ные ковычки
    count++;
}
так ещё проще
а что за оператор strlen
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 15:27     Подсчёт числа слов в предложении - исправить ошибки #9
считает длину строки
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.03.2012, 15:28     Подсчёт числа слов в предложении - исправить ошибки #10
В условии же не сказано, что между словами обязательно стоит только один пробел. А даже если и 1, то ответом будет число пробелов + 1, и то не всегда.
Так что единственное верное решение находится во втором посте.
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 15:30  [ТС]     Подсчёт числа слов в предложении - исправить ошибки #11
Цитата Сообщение от diagon Посмотреть сообщение
В условии же не сказано, что между словами обязательно стоит только один пробел. А даже если и 1, то ответом будет число пробелов + 1.
Так что единственное верное решение находится во втором посте.
может быть вы правы но я ничего не знаю о #define
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
14.03.2012, 15:49     Подсчёт числа слов в предложении - исправить ошибки #12
Цитата Сообщение от unreal Посмотреть сообщение
может быть вы правы но я ничего не знаю о #define
это макрос. то есть
#define PRINTUSER cout <<user;
теперь года мы хотим вывести колво пользователей можно просто писать PRINTUSER
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
14.03.2012, 16:11     Подсчёт числа слов в предложении - исправить ошибки #13
вот тебе рабочая программка на плюсах.
не лазий больше в другие темы и не баломуть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string.h>
 
int main( int argc, char** argv )
{
    char text[1024];
    char* pointer;
 
    int counter = 0;
 
    std::cout << "Enter string: ";
    std::cin.getline(text, 1024);
 
    for(pointer = strtok(text, " ,.!?\n\t{}[]()_;"); pointer; pointer = strtok(NULL, " ,.!?\n\t{}[]()_;"))
        counter++;
 
    std::cout << "\n\nNumber of words is: " << counter;
    return 0;
}
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 16:14  [ТС]     Подсчёт числа слов в предложении - исправить ошибки #14
Цитата Сообщение от co6ak Посмотреть сообщение
вот тебе рабочая программка на плюсах.
не лазий больше в другие темы и не баломуть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string.h>
 
int main( int argc, char** argv )
{
    char text[1024];
    char* pointer;
 
    int counter = 0;
 
    std::cout << "Enter string: ";
    std::cin.getline(text, 1024);
 
    for(pointer = strtok(text, " ,.!?\n\t{}[]()_;"); pointer; pointer = strtok(NULL, " ,.!?\n\t{}[]()_;"))
        counter++;
 
    std::cout << "\n\nNumber of words is: " << counter;
    return 0;
}
спс наконец то)
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 16:15     Подсчёт числа слов в предложении - исправить ошибки #15
эмм просто продублировал алгоритм)
подожди ты всё это время мучался потому что не мог к моему посту дописать int main и ввод строки???
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 16:17  [ТС]     Подсчёт числа слов в предложении - исправить ошибки #16
Цитата Сообщение от co6ak Посмотреть сообщение
вот тебе рабочая программка на плюсах.
не лазий больше в другие темы и не баломуть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string.h>
 
int main( int argc, char** argv )
{
    char text[1024];
    char* pointer;
 
    int counter = 0;
 
    std::cout << "Enter string: ";
    std::cin.getline(text, 1024);
 
    for(pointer = strtok(text, " ,.!?\n\t{}[]()_;"); pointer; pointer = strtok(NULL, " ,.!?\n\t{}[]()_;"))
        counter++;
 
    std::cout << "\n\nNumber of words is: " << counter;
    return 0;
}
а что это strtok
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 16:18     Подсчёт числа слов в предложении - исправить ошибки #17
Функция strtok() возвращает указатель на следующую лексему в строке
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
14.03.2012, 16:19     Подсчёт числа слов в предложении - исправить ошибки #18
http://cpp.com.ru/shildt_spr_po_c/14/strtok.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2012, 16:20     Подсчёт числа слов в предложении - исправить ошибки
Еще ссылки по теме:

Поиск степени числа - исправить ошибки в коде C++
C++ Проверка на простоту числа - исправить ошибки в коде
C++ Подсчёт слов в строке. Подсчёт символов в словах строки

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.03.2012, 16:20     Подсчёт числа слов в предложении - исправить ошибки #19
Упрощённый вариант того, на что я давал ссылку в третьем посте
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>
 
using namespace std;
 
int main()
{
   // строка из 255 символов + 1 символ под '\0'(признак конца строки)
   char str[256]; 
 
   // считываем строку
   cout << "sentence: ";
   cin.getline(str, sizeof(str));
 
   // счётчик слов
   size_t n = 0;   
   
   // пока не достигли конца строки(символа '\0')
   for(size_t i = 0; str[i] != '\0'; ++i)
   {            
      // если текущий символ не является пробелом(разделителем между словами)
      if(str[i] != ' ')
      {  
     // увеличиваем счётчик слов на 1
         ++n; 
     
     // начинаем пропуск всех символов не являющихся пробелами(разделителями между словами)
         do 
         {
        // переходим к слудующему символу
        ++i; 
 
        // если был достигнут конец строки, "выпрыгиваем" из вложенного цикла к строке выдачи результата
            if(str[i] == '\0') 
               goto SHOW_RESULT_LABEL;
         }
         while(str[i] != ' ');
      }    
   }
   
SHOW_RESULT_LABEL:   
   cout << "result: " << n << "\n";   
}
Yandex
Объявления
14.03.2012, 16:20     Подсчёт числа слов в предложении - исправить ошибки
Ответ Создать тему
Опции темы

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