Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2017, 16:36   #1
Sasha_P
Новичок
Джуниор
 
Регистрация: 31.05.2017
Сообщений: 1
По умолчанию [C++] Помогите исправить ошибку и сделать блок-схему

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

Код:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Russian");
    string s, str;
    int k;
    for (int i = 0; str[i]; i++)
    {
        if (isalpha(str[i]))
            s += str[i];
    }
    for (int j = 0; s[j]; j++)
    {
        k = 0;
        for (int i = j + 1; s[i]; i++)
        {
            if (s[j] == s[i])
            {
                while (s[j] == s[i])
                {
                    s.erase(i, 1);
                    k++;
                }
            }
        }
             
    }
    char ch_key;
    bool bMENU = true;
    while(bMENU)
    {
    	cout << "<><><><><><><><><><><>Меню<><><><><><><><><><><>" << endl<< endl;
        cout<<"  1.Ввести строку из символов [ENG]\n"<< endl;
        cout<<"ESC.Выйти из программы\n"<< endl<< endl;
        switch((ch_key = _getch()))
        {
        case '1':
            cout << "Введите строку из символов [ENG]:" << endl;
    		getline(cin, str);
    		cout << "Число вхождений каждой буквы:" << endl;
    		cout << s[j] << ": " << k << endl;
            break;
        case 27:
            bMENU = false;
            cout<<"Выход из программы...\n"<< endl;
            break;
        default:
            cout<<"Вы выбрали неверный вариант\n";
            break;
        }
    }
    return 0;
}

Последний раз редактировалось Вадим Мошев; 31.05.2017 в 21:54.
Sasha_P вне форума Ответить с цитированием
Старый 31.05.2017, 22:10   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Код не читал. Что делает эта программа? Какого рода возникает ошибка? Что она должна делать?

Вот ответ человека, который C++ не знает.
1.
Код:
int main()
{
	setlocale(LC_ALL, "Russian");
    string s, str;
    int k;
    for (int i = 0; str[i]; i++)
У вас программа начинается "ни с того ни с сего". Сразу начинается обработка строки, несмотря на то, что значение ей задано не было.

2. Точки с запятой я бы всё же ставил. Насколько я знаю, C++ относится к этому очень строго. Посмотрите, у вас, например, циклы for не отделяются друг от друга точками с запятой.

3.
Код:
case 27:
            bMENU = false;
            cout<<"Выход из программы...\n"<< endl;
            break;
Вы сравниваете переменную типа char с числом 27. Разумеется, у вас работать ничего не будет. Вам нужно не число 27, а код клавиши с номером 27.
Вадим Мошев вне форума Ответить с цитированием
Старый 31.05.2017, 22:18   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Посмотрите, у вас, например, циклы for не отделяются друг от друга точками с запятой.
так для блоков { } они не нужны нигде, кроме объявлений классов/енумов.
Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Вы сравниваете переменную типа char с числом 27.
char это число.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать блок-схему! Марфатри Помощь студентам 0 23.11.2014 15:53
помогите сделать блок-схему kolbaskin Паскаль, Turbo Pascal, PascalABC.NET 1 26.01.2014 19:38
помогите сделать блок-схему winston07 Помощь студентам 1 30.11.2013 11:19
Помогите сделать блок схему! Лёха Паскаль, Turbo Pascal, PascalABC.NET 4 24.01.2011 19:32