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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
lil21
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 6
#1

Проверить, правильно ли расставлены скобки в выражении - C++

27.12.2011, 18:41. Просмотров 2333. Ответов 5
Метки нет (Все метки)

Задача: "Строка содержит арифметическое выражение, в котором используются круглые скобки, в том числе и вложенные. Проверить, правильно ли в нем расставлены скобки."
не могу разобраться с синтаксисом работы со строками, помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2011, 18:41     Проверить, правильно ли расставлены скобки в выражении
Посмотрите здесь:

Проверить правильно ли расставлены скобки в арифметическом выражении - C++
Строка содержит арифметическое выражение, в котором используются круглые скобки, в том числе вложенные. Проверить, правильно ли в нем...

Проверить, правильно ли в арифметическом выражении расставлены скобки. - C++
Строка содержит арифметическое выражение, в котором используются круглые скобки, в том числе вложенные. Проверить, правильно ли в нем...

Работа со стеком (Необходимо проверить,правильно ли расставлены скобки) - C++
Дано математическое выражение, к примеру {x+(g-*c)-(q+w)}. Необходимо проверить,правильно ли расставлены скобки. Проверять следует...

Дан файл с текстом проверить правильно ли в нем расставлены круглые скобки - C++
Дан файл с текстом проверить, правильно ли в нем расставлены круглые скобки и исправленный вариант закинуть в новый файл Заранее...

Дана строка, содержащая произвольный текст. Проверить, правильно ли в нем расставлены круглые скобки - C++
Дана строка, содержащая произвольный текст. Проверить, правильно ли в нем расставлены круглые скобки (т.е. находится ли правее каждой...

Дана строка, содержащая латинские буквы и скобки. Если скобки расставлены правильно - вывести 0. Иначе - номер позиции, где есть ошибочная скобка - C++
Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответству-ет одна...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
27.12.2011, 18:45     Проверить, правильно ли расставлены скобки в выражении #2
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
#include <iostream>
#include <string>
#include <stack>
 
using namespace std;
 
int main()
{
    string s;
    getline(cin, s);
    stack<char> st;
    bool f = 1;
    for(size_t i = 0; i < s.size(); i++)
    {
        if(s[i] == '(')
            st.push(s[i]);
        else if(s[i] == ')')
        {
            if(st.empty() || st.top() != '(')
            {
                f = 0;
                break;
            }
            else
                st.pop();
        }
    }
    if(f && st.empty())
        cout << "good";
    else
        cout << "bad";
    cout << endl;
    return 0;
}
lil21
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 6
27.12.2011, 18:50  [ТС]     Проверить, правильно ли расставлены скобки в выражении #3
можно этот код на С переофоромить?
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.12.2011, 18:57     Проверить, правильно ли расставлены скобки в выражении #4
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
#include <stdio.h>
 
int main( void )
{
    char buffer[256];
 
    putchar( '>' );
    fgets( buffer, 256, stdin );
 
    char * it;
    unsigned char depth = 0;
 
    for( it = buffer; *it; it++ )
    {
       if( *it == '(' )
           depth++;
       else if( *it == ')' )
       {
           if( depth )
              depth--;
           else
           {
               puts( "Лишняя закрывающая скобка" );
               return 1;
           }
       }
    }
 
    if( depth )
    {
        puts( "Лишняя открывающая скобка" );
        return 2;
    }
 
    puts( "Всё нормально" );
    return 0;
}
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
27.12.2011, 22:45     Проверить, правильно ли расставлены скобки в выражении #5
Цитата Сообщение от talis Посмотреть сообщение
depth--;
минусовать unsigned???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2011, 22:47     Проверить, правильно ли расставлены скобки в выражении
Еще ссылки по теме:

Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ с++ - C++
Помогите написать задачку по с++ &quot;Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ&quot; не понимаю, программирования в...

Нужен алгоритм, которым можно проверить, правильно ли пользователь расставил скобки - C++
Добрый день. Нужен алгоритм, которым можно проверить правильно ли пользователь роставил скобки. К примеру: (abc) -Правельно, - неправельно.

Определить правильной ли последовательности расставлены круглые скобки в тексте - C++
Здравствуйте! Моя задача звучит следующим образом: &quot;Дан текстовый файл, содержащий программу на С++. Проверить эту программу на...

Определить, корректно ли расставлены круглые, фигурные и квадратные скобки - C++
Вот такая вот нехитрая вроде бы задача: Для введённой пользователем с клавиатуры строки (максимальная длина строки — 80 символов)...

Раскрыть скобки в алгебраическом выражении. - C++
Здравствуйте! Подскажите каким алгоритмом (способом) можно осуществить раскрытие скобок в выражении?? Например: Имеется ...

Проверить, есть ли в тексте скобки - C++
Ребята выручайте! 3.Дан текст произвольной длины, оканчивающийся символом &quot;;&quot;. Проверить, есть ли в тексте скобки


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

Или воспользуйтесь поиском по форуму:
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.12.2011, 22:47     Проверить, правильно ли расставлены скобки в выражении #6
Цитата Сообщение от Mayonez Посмотреть сообщение
минусовать unsigned???
а что такое? за ноль-то он не зайдёт:

Цитата Сообщение от talis Посмотреть сообщение
C
1
2
if( depth )
    depth--;
а что в этом не так?
Yandex
Объявления
27.12.2011, 22:47     Проверить, правильно ли расставлены скобки в выражении
Ответ Создать тему
Опции темы

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