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

Проверка баланса скобок - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры http://www.cyberforum.ru/cpp-beginners/thread516097.html
Подготовьте массив указателей на MARSH на 50 элементов. Считайте все записи из файла "2.dat" . Для чтения каждой отдельной записи осуществите динамический захват памяти. Соответствующий адрес храните в массиве указателей. Выполните сортировку данных по убыванию длины маршрута - причем сортировать потребуется только указатели в массиве.
C++ Описать структуру с именем Описать структуру с именем STUDENT, содержащие следующие поля: 1) Фамилия и инициалы 2) Номер группы 3) Успеваемость(массив из 5 элементов) Написать программу, которая 1) ввод с клавиатуры данных в массив, состоящий из 10 структур типа STUDENT ; записи должны быть упорядочены по возрастанию номера группы 2) вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив,... http://www.cyberforum.ru/cpp-beginners/thread516095.html
Что лучше читать Программирование: принципы и практика - Страуструпа или ООП в С++ - Лафоре C++
Вот хочу научиться программировать, пошел я в библиотеку и взял две книги по программированию на С++(кроме них не фига не было по С++) Что лучше начать читать, и что более эффективно, Бьярне Страуструп Программирование: принципы и практика использования C++, исправленное издание и вот вторая книги Р.Лафоре - Объектно-Ориентированное Программирование В С++ P.S. Я ваше раньше не программировал
Дано 12 чисел. Напечатать сначала вс отрицательные из них, а затем все остальные. C++
1)Дано 12 чисел. Напечатать сначала вс отрицательные из них, а затем все остальные. 2)Если в заданный текст вхлдит каждая из букв слова key, тогда напечатать yes, инче no. 3)Дана вещественная матрица A:array. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент оказался в верхнем левом углу. 4)Задана матрица целых чисел. сформировать массив, в котором все элементы с четными...
C++ Найти пару различных точек этого множества с максимальным расстоянием между ними и само это расстояние http://www.cyberforum.ru/cpp-beginners/thread516078.html
Дано множество A из N точек (точки заданы своими координатами x, y). Найти пару различных точек этого множества с максимальным расстоянием между ними и само это расстояние (точки выводятся в том же порядке, в котором они перечислены при задании множества A).
C++ first practise.help это мой 1-ый практика на с++ помогите исправит ошибки(если не трудно:)) #include <iostream> #include <iomanip> #include <conio.h> #include <cmath> #include <process.h> using namespace std; struct bil{ int a; float b; подробнее

Показать сообщение отдельно
Джон
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 40

Проверка баланса скобок - C++

11.03.2012, 16:09. Просмотров 4072. Ответов 17
Метки (Все метки)

Как задать условие в проверке баланса скобок, что если скобки окажутся НЕ пустыми, тое сть внутри них еще что-то будет (символы или числа), допустим [(dfe)], то что бы вывело NO (ну то есть баланс нарушен). Код для проверки баланса ТОЛЬКО скобок я написал. Не знаю, как исключить другие символы.
Вот сама задача (если что-то не ясно) http://www.e-olimp.com/problems/2479 Вот мой код
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
46
47
48
49
50
51
52
53
54
55
56
57
58
#include<stdio.h>
int balanceBrackets(char *);
int main()
{   int p;
    char string[200]; 
    int bal; 
    scanf("%d",&p);
    for(int i=0;i<p;i++)
    {
    scanf("%s",&string);
    bal = balanceBrackets(string); 
        if (bal)
        printf("Yes\n");
        else
     printf("No\n");
    }
    return 0;
}
int balanceBrackets(char *string) 
{
    int k = 0; 
    int Open1 = 0, 
        Close1 = 0, 
        Open2 = 0, 
        Close2 = 0; 
    int index = 0; 
    bool exit = false;
    while (string[index] != '\0' && !exit) 
    {
        switch (string[index]) 
        {
        case '(':
            {
                Open1++;
                break;
            }
        case ')':
            {
                Close1++; 
                if (Close1 > Open1) exit = true; 
            }
        case '[':
            {
                Open2++; 
                break;
            }
        case ']':
            {
                Close2++;
                if (Close2 > Open2) exit = true; 
                break;
            }
        }
        index++;
    }
    if (Open1 == Close1 && Open2 ==Close2) k = 1; 
    return k; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru