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

Исправьте мне ошибки! - C++

Восстановить пароль Регистрация
 
barmin15
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 8
25.01.2012, 11:53     Исправьте мне ошибки! #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <conio.h>
#include <string.h>
#include <windows.h>
#include <iomanip>
#include <math.h>
using namespace std;
char str[81];
char ch;
int i = 0;
       
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
   do
   {
       /*char str[81];
       char ch;
       int i = 0;
       */
       cout << "Введите строку символов: \n" ;
    {
        if (ch == '-' || ch >= '0' && ch <= '9')
        {
            str[i] = ch;
            cout << str[i++];
        }
        else if (ch == '\b')
        {
            i--;
            cout << "\b \b";
        }
    }
    str[i] = '\0';
    int count = 0;
    for (int z = 0;z < strlen(str);z++)
    {
        if (str[z] == '-') 
        count++;
    }
    cout << "Количество минусов в строке: " << count<<endl;
   } while (_getch()!=27);
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!


Добавлено через 5 минут
программа должна считывать строку символов, содержащую только числа и подсчитывает количество знаков "минус" в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.01.2012, 11:54     Исправьте мне ошибки! #2
У вас в программе какой-то хаос творится. Напишите лучше задание.
barmin15
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 8
25.01.2012, 11:54  [ТС]     Исправьте мне ошибки! #3
сама прога работает, но не вводится символы в консольное окно
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2012, 11:56     Исправьте мне ошибки! #4
Цитата Сообщение от barmin15 Посмотреть сообщение
и подсчитывает количество знаков "минус" в строке
C++
1
size_t cnt = std::count_if(str.begin(), str.end(), [](int c) { return c == '-'; });
barmin15
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 8
25.01.2012, 11:58  [ТС]     Исправьте мне ошибки! #5
Go, а куда надо вставить эту строчку?
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2012, 12:01     Исправьте мне ошибки! #6
Цитата Сообщение от barmin15 Посмотреть сообщение
а куда надо вставить эту строчку?
не знаю. Наверное, снести все. Подключить нужные хедеры, а в главной функции всего три строчки: считывание строки, и подсчет минусов.
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.01.2012, 12:01     Исправьте мне ошибки! #7
go, а std::count чем не угодил?
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2012, 12:03     Исправьте мне ошибки! #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
go, а std::count чем не угодил?
Тоже не знаю. Почему-то в голове сразу такой алгоритм сложился. Вы правы, std::count лучше.
silent_1991
25.01.2012, 12:05
  #9

Не по теме:

Цитата Сообщение от go Посмотреть сообщение
Почему-то в голове сразу такой алгоритм сложился
Верю, у меня на днях тоже алгоритм ппц сложился. Тоже надо было что-то подсчитать, так я начисто забыл про std::count и использовал std::set () из-за std::set::count. Правда, у меня есть оправдание, я перед этим ночь не спал

barmin15
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 8
25.01.2012, 12:06  [ТС]     Исправьте мне ошибки! #10
подскажите почему не вводятся символы в запущенную программу???
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.01.2012, 12:09     Исправьте мне ошибки! #11
barmin15, потому что нигде нет строчки с вводом, очевидно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2012, 12:12     Исправьте мне ошибки!
Еще ссылки по теме:

C++ исправьте ошибки в игре
Исправьте ошибки C++
Исправьте ошибки в программе C++
Исправьте ошибки C++

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2012, 12:12     Исправьте мне ошибки! #12
Цитата Сообщение от barmin15 Посмотреть сообщение
подскажите почему не вводятся символы в запущенную программу???
Если верить Вашему коду, то потому...
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::cout << "Count '-'  = " << std::count(str.begin(), str.end(), '-') << std::endl;
    std::system("pause");
    return 0;
}
Как вариант.
Yandex
Объявления
25.01.2012, 12:12     Исправьте мне ошибки!
Ответ Создать тему
Опции темы

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