0 / 0 / 1
Регистрация: 26.02.2012
Сообщений: 118
1

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

14.03.2012, 14:20. Показов 1751. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите исправит ошибку.прог не правильно работает.
он предназначен для считывание число слов в предложении
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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2012, 14:20
Ответы с готовыми решениями:

Подсчет числа слов в предложении до точки
Напишите программу,которая считает сколько слов в предложении до точки, с использованием...

Подсчет числа слов в предложении с использованием перечислений. Найти ошибку в коде
где в коде ошибка? // подсчет чила слов в предложении с использованием перечислений.cpp:...

Подсчет слов в предложении
Написала программу, но в ней есть ошибка. Самой найти не получается, программа считает знак...

Подсчёт частоты слов в предложении
Я в языке Haskell понимаю очень ничего! Есть задача написать прогу, которая в введённом...

18
51 / 51 / 4
Регистрация: 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++;
}
1
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
14.03.2012, 14:52 3
https://www.cyberforum.ru/cpp-... ost2768156
1
0 / 0 / 1
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 15:06  [ТС] 4
Цитата Сообщение от rangerx Посмотреть сообщение
в книге Лафоре должно быть но я никак не могу найти
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
14.03.2012, 15:16 5
C++
1
2
3
4
5
6
do {
       ch = getch();;
       if(ch == ' ') 
       word++;
   }
   while( ch != '\r');
так же проще
1
51 / 51 / 4
Регистрация: 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++;
}
так ещё проще
1
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
14.03.2012, 15:20 7
Цитата Сообщение от A555 Посмотреть сообщение
может я путаю но нужно посчитать количество слов в предложение
co6ak, привёл тебе самый оптимальный код чего ещё нужно?
0
0 / 0 / 1
Регистрация: 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
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 15:27 9
считает длину строки
1
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.03.2012, 15:28 10
В условии же не сказано, что между словами обязательно стоит только один пробел. А даже если и 1, то ответом будет число пробелов + 1, и то не всегда.
Так что единственное верное решение находится во втором посте.
1
0 / 0 / 1
Регистрация: 26.02.2012
Сообщений: 118
14.03.2012, 15:30  [ТС] 11
Цитата Сообщение от diagon Посмотреть сообщение
В условии же не сказано, что между словами обязательно стоит только один пробел. А даже если и 1, то ответом будет число пробелов + 1.
Так что единственное верное решение находится во втором посте.
может быть вы правы но я ничего не знаю о #define
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
14.03.2012, 15:49 12
Цитата Сообщение от unreal Посмотреть сообщение
может быть вы правы но я ничего не знаю о #define
это макрос. то есть
#define PRINTUSER cout <<user;
теперь года мы хотим вывести колво пользователей можно просто писать PRINTUSER
1
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
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;
}
1
0 / 0 / 1
Регистрация: 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;
}
спс наконец то)
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 16:15 15
эмм просто продублировал алгоритм)
подожди ты всё это время мучался потому что не мог к моему посту дописать int main и ввод строки???
0
0 / 0 / 1
Регистрация: 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
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
14.03.2012, 16:18 17
Функция strtok() возвращает указатель на следующую лексему в строке
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
14.03.2012, 16:19 18
http://cpp.com.ru/shildt_spr_po_c/14/strtok.html
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
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";   
}
1
14.03.2012, 16:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2012, 16:20
Помогаю со студенческими работами здесь

Подсчет количества слов в предложении
Здравствуйте. Помогите, пожалуйста, с лабой. 1. Дана строка символов. Распечатать слова, отличные...

Подсчет слов в предложении(функция)
Условие: Создать функию подсчета кол-ва слов в предложении, и использовать ее(функцию) для...

Подсчёт количества слов в предложении
Помогите пожалуйста, нужно написать программу ,которая посчитает сколько слов в предложении

Подсчет слов в каждом предложении
Вводится строка, программа должна подсчитать количество слов в каждом предложении . Как это...

Подсчёт одинаковых слов в предложении
Что не так в данной реализации? &lt;?php function wordsCount($str) { $result = ; ...

Подсчет количества слов в предложении
Дана строка, содержащая несколько слов, разделенных одним пробелом. В начале строки и в конце...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru