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

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

Войти
Регистрация
Восстановить пароль
 
snadow
0 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 41
#1

Не правильно работает 1 из счетчиков - C++

04.02.2012, 11:54. Просмотров 694. Ответов 10
Метки нет (Все метки)

Помогите, не правильно считает счетчик nw, в упор не понимаю по чему...
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
#include <conio.h>
#include <stdio.h>
 
#define eof -1
#define yes 1
#define no 0
 
int main()
{
    int c;
    int nl;
    int nc;
    int nw;
    int in;
    nc,nl,nw=0;
    in=no;
    printf("Enter your strings and press <Enter>  \n");
    while ((c=getchar()) !=eof)
    {
        if (c !='\n')
        nc++;
        else nl++;
        if (c==' ' || c=='\n' || c=='\t')
            in=no;
        else
        {
            in=yes;
            nw++;
        }
    }
    printf("Strings = %d\n",nl);
    printf("Worlds = %d\n",nw);
    printf("Characters = %d\n",nc);
      _getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2012, 11:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не правильно работает 1 из счетчиков (C++):

Не могу понять как работает (//накопление счетчиков) поясните пжлст - C++
} #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define eof -1 //признак конца файла #define maxind 10 //количество...

Не могу понять почему не работает (или правильно не работает) - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; int i,j; cout&lt;&lt;&quot;nachalnya...

Не правильно работает! - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; using namespace std; double...

Не правильно работает. s = (a/(b*(c/(d*(e/(f*h)))))); - C++
2. На входе имеются вещественные числа a, b, c, d, e, f, h. Напишите программу для вычисления значения выражения В программе...

C++ Не правильно работает if - C++
Ребята, привет. Возник такой вопрос..В программе выполняю следующую вещь: f1= Have_Point(p1); ...

Не правильно работает! - C++
Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значе-нию всех ее...

10
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
04.02.2012, 12:41 #2
15 строка: возможно имелось в виду
C
1
nc=nl=nw=0;
18 строка: возможно имелось в виду:
C
1
while ((c=getchar()) !=EOF)
(нет необходимости переопределять макрос EOF)

если посли этих исравлений работает не так как нужно, то вопрос: что должна считать программа?
0
snadow
0 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 41
04.02.2012, 12:53  [ТС] #3
нет, не работает, должна считать строки,символы и слова
0
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
04.02.2012, 16:48 #4
C
1
2
3
4
5
6
if (c==' ' || c=='\n' || c=='\t')
{ 
     if (in==yes) nw++;
     in=no;
}else
     in=yes;
(исходный текст должен заканчиваться новой строкой, пробелом или символом табуляции)
0
-=ЮрА=-
04.02.2012, 16:54
  #5

Не по теме:

snadow, как ты собрался выйти из while??? -1 введёшь, каким образом???

0
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
04.02.2012, 17:04 #6
Например так(линукс): cat 1.txt | ./a.out
( conio.h и _getch() выкинуты из исходника)

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

Не по теме:

не думаю что у автора линукс, но думаю он из цикла выходит аналогичным способом (или Ctrl+c)

0
-=ЮрА=-
Заблокирован
Автор FAQ
04.02.2012, 17:05 #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
#include <stdio.h>
#include <ctype.h>
 
int main()
{
    char c;
    int nl;
    int nc;
    int nw;
    int in;
    in = (nc  = (nl = (nw = 0)));
    printf("Enter your strings and press <Enter>\n");
    while ((c = getchar()) != '\\')
    {
        if (c !='\n')
            nc++;
        else 
            nl++;
        if (c==' ' || c=='\n' || c=='\t')
        {
            if(in == 1)
                nw++;
            in = 0;
        }
        else
            in = 1;
    }
    printf("Strings = %d\n",nl);
    printf("Worlds = %d\n",nw);
    printf("Characters = %d\n",nc);
    getchar();
    return 0;
}
0
Миниатюры
Не правильно работает 1 из счетчиков  
-=ЮрА=-
Заблокирован
Автор FAQ
04.02.2012, 17:06 #8
Цитата Сообщение от nxnx Посмотреть сообщение
if (c==' ' || c=='\n' || c=='\t')
{
* * *if (in==yes) nw++;
* * *in=no;
}else
* * *in=yes;
- nxnx, я не заметил, ты правильно раньше ответил
0
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
04.02.2012, 17:10 #9
-=ЮрА=-, getchar() :
If the End Of File is reached or a reading error happens, the function returns EOF and the corresponding error or eof indicator is set.
(EOF определен как -1)
http://www.cplusplus.com/reference/clibrary/cstdio/getchar/
C
1
while ((c = getchar()) != '\\' )
- нужно проверять на EOF
0
snadow
0 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 41
04.02.2012, 17:13  [ТС] #10
crlt + z формирует значение -1, при нажатие выходит

Добавлено через 29 секунд
спасибо вам
0
-=ЮрА=-
Заблокирован
Автор FAQ
04.02.2012, 17:18 #11
Цитата Сообщение от nxnx Посмотреть сообщение
(EOF определен как -1)
- какой EOF в консольном вводе?!
Цитата Сообщение от snadow Посмотреть сообщение
crlt + z формирует значение -1, при нажатие выходит
- ну разве что так
0
04.02.2012, 17:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2012, 17:18
Привет! Вот еще темы с ответами:

Не правильно работает программа - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { unsigned long int v=299792,S1,S2; ...

не работает правильно счетчик - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; void MatrixInp(int** x,int n); void...

Не правильно работает sin() - C++
Здравствуйте, есть задача: найти площадь треугольника разными способами. Во втором способе не правильно вычисляется синус угла, иногда...

прога не правильно работает - C++
У меня ошибка в while но не знаю как исправить:( #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;clocale&gt; #include &lt;iomanip&gt; ...


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

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

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