Загрузка...

C++

Thread in C/C++ created by Vad1mka_inactive31405 Feb 25, 2018. 777 views

  1. Vad1mka_inactive31405
    Vad1mka_inactive31405 Topic starter Feb 25, 2018 152 Dec 19, 2015
    Помогите сделать задание.

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


    #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 Topic starter Feb 26, 2018 152 Dec 19, 2015
  13. Vad1mka_inactive31405
    Vad1mka_inactive31405 Topic starter Feb 26, 2018 152 Dec 19, 2015
    Тут чисто мой косяк, забыл основное сказать.
    нужно юзать stack
     
  14. ESPPE
    ESPPE Feb 26, 2018 90 Dec 27, 2017
    А что это такое?
    Как насчёт всего того, что внутри, а не по бокам строки?
     
  15. Alex_ey_inactive164783
    Alex_ey_inactive164783 Feb 26, 2018 Banned 266 Aug 24, 2017
    я не пойму , что именно тебе нужно , опиши , я мож тупой))
     
  16. Vad1mka_inactive31405
    Vad1mka_inactive31405 Topic starter Feb 26, 2018 152 Dec 19, 2015
    ввел текст, и чтобы прога узнала закрыты ли скобки типо (....... - не закрыто
    (.....) - закрыто
     
  17. ESPPE
    ESPPE Feb 26, 2018 90 Dec 27, 2017
    Если без стеков, то так:
    Code

    #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 Feb 26, 2018 90 Dec 27, 2017
    Со стеком:
    Code

    #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, тогда я скину реализацию через стек)

    Code


    #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
    Хотя очередь тоже стек.
     
Loading...
Top