Загрузка...

С++

Тема в разделе C/C++ создана пользователем Vad1mka_inactive31405 25 фев 2018. 778 просмотров

  1. Vad1mka_inactive31405
    Vad1mka_inactive31405 Автор темы 25 фев 2018 152 19 дек 2015
    Помогите сделать задание.

    Нужно чтоб после ввода строки из символов программа проверила правильно ли в ней поставлены скобки.
     
  2. Yffhnlol
    Yffhnlol 25 фев 2018 come in stranger 26 24 дек 2017
    ты считываешь введенную строку из консоли в свой софт?
     
  3. levgo
    levgo 26 фев 2018 1 17 апр 2017
    Попробуй стеком
     
  4. Vad1mka_inactive31405
    Vad1mka_inactive31405 Автор темы 26 фев 2018 152 19 дек 2015
    это консольная программа, в шараге задали на завтра, вообще хз как делать
     
  5. Yffhnlol
    Yffhnlol 26 фев 2018 come in stranger 26 24 дек 2017
    тебе за такую информативность никто не поможет.
     
  6. levgo
    levgo 26 фев 2018 1 17 апр 2017
    Ну тип если скобка открывается то заносим в массив, если закрывается - проверяемых вершину массива
     
  7. Vad1mka_inactive31405
    Vad1mka_inactive31405 Автор темы 26 фев 2018 152 19 дек 2015
    Блин, только через массив?
     
  8. Vad1mka_inactive31405
    Vad1mka_inactive31405 Автор темы 26 фев 2018 152 19 дек 2015
    ну написал в cout текст, и нужно посчитать закрыл скобку или нет, если не ошибаюсь, то так
     
  9. Yffhnlol
    Yffhnlol 26 фев 2018 come in stranger 26 24 дек 2017
    каждый символ имеет кодовое число.... тебе просто надо пробежаться циклом по строке.... и проверить ровняется ли текущий символ нужному коду, который мы ищем.
     
  10. renameduser_185993
    Привет, актуально еще?
     
  11. renameduser_185993
    Просто оставлю здесь
    Код


    #include "stdafx.h"
    #include "iostream"
    #include <string>

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "Russian");


    string strokaVvoda;
    cout << "Введи строку: ";
    getline(cin, strokaVvoda);
    int last = strokaVvoda.length()-1;
    if ((strokaVvoda.at(0) == '(') && (strokaVvoda.at(last) == ')'))
    {
    cout << "Все хорошо"<<endl;
    } else {
    cout << "Все плохо"<<endl;
    }
    cout << strokaVvoda<<endl;
    system("pause");
    return 0;
    }

     
  12. Vad1mka_inactive31405
    Vad1mka_inactive31405 Автор темы 26 фев 2018 152 19 дек 2015
    да
     
  13. Vad1mka_inactive31405
    Vad1mka_inactive31405 Автор темы 26 фев 2018 152 19 дек 2015
    Тут чисто мой косяк, забыл основное сказать.
    нужно юзать stack
     
  14. ESPPE
    ESPPE 26 фев 2018 90 27 дек 2017
    А что это такое?
    Как насчёт всего того, что внутри, а не по бокам строки?
     
  15. Alex_ey_inactive164783
    Alex_ey_inactive164783 26 фев 2018 Заблокирован(а) 266 24 авг 2017
    я не пойму , что именно тебе нужно , опиши , я мож тупой))
     
  16. Vad1mka_inactive31405
    Vad1mka_inactive31405 Автор темы 26 фев 2018 152 19 дек 2015
    ввел текст, и чтобы прога узнала закрыты ли скобки типо (....... - не закрыто
    (.....) - закрыто
     
  17. ESPPE
    ESPPE 26 фев 2018 90 27 дек 2017
    Если без стеков, то так:
    Код

    #include <iostream>
    #include <string>
    using namespace std;

    int main(){

    string na;
    cin >> na;

    int l=0;
    for(int c=0;c<na.length() && 0<=l;c++)
    if(na.at(c)=='(')l++;
    else if(na.at(c)==')')l--;

    if(l==0)cout << "OK!";
    else cout << "BAD!";

    }

     
  18. ESPPE
    ESPPE 26 фев 2018 90 27 дек 2017
    Со стеком:
    Код

    #include <iostream>
    #include <string>
    #include <queue>
    using namespace std;

    int main(){

    string sa;
    cin >> sa;

    queue<char> la;
    for(int c=0;c<sa.length();c++)
    if(sa.at(c)=='(')la.push('(');
    else if(sa.at(c)==')')
    if(la.size())la.pop();
    else{
    la.push(')');
    break;
    }

    cout << (la.size()?"BAD!":"OK!");

    }
     
  19. renameduser_185993
    ESPPE, тогда я скину реализацию через стек)

    Код


    #include "stdafx.h"
    #include "iostream"
    #include <string>
    #include <stack>

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "Russian");


    string strokaVvoda;
    cout << "Введи строку: ";
    getline(cin, strokaVvoda);
    int last = strokaVvoda.length()-1;
    stack <char> steck;

    for each (char c in strokaVvoda)
    {
    steck.push(c);
    }
    cout << "Поместили в стек"<<endl;
    while (!steck.empty())
    {
    if ((steck.top() == ')') || (steck.top() == '('))
    {
    cout << "Скобка \"" << steck.top() << "\" присутствует"<< endl;

    }
    steck.pop();

    }

    cout << "Стек: ";
    while (!steck.empty())
    {

    cout << steck.top();

    steck.pop();

    }
    cout << strokaVvoda<<endl;
    system("pause");
    return 0;
    }
     
  20. renameduser_185993
    Хотя очередь тоже стек.
     
Загрузка...
Top