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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить все непарные строки двумерного массива http://www.cyberforum.ru/cpp-beginners/thread1121317.html
Написать в одной программе: 1. Удалить все непарные строки двумерного массива. 2. Добавить строку после той строки, которая содержит наибольший элемент. Пожалуйста помогите с написанием...
C++ Описать структуру с именем "Price" Собственно,заполнять вроде заполняет,да и выводит тоже...вот только с сортировкой не пойму что не так... Как только не пробовал,и так как тут,и отдельно поля менять (например,tovarswap=price.tovar)... http://www.cyberforum.ru/cpp-beginners/thread1121307.html
Создать файл в которым буден записано k случайных перестановок чисел C++
Прошу помощи в написании нескольких несложных программ: 1 создать файл в которым буден записано k случайных перестановок чисел {1,2,3,4,5,6,7,8,9} 2 программа которая создает файл имеющий все...
Пузырьковая сортировка, разобрать код C++
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #include <iostream> void main() { setlocale (0,"Russian"); int const n=10,k=30; int a;
C++ Составить программу реализующую функцию калькулятора производящего арифметические действия http://www.cyberforum.ru/cpp-beginners/thread1121284.html
Пожалуйста, помогите составить программу реализующую функцию калькулятора производящего арифметические действия ( +; -; *; / ) и функции перевода вещественных чисел из одной произвольной системы...
C++ Построить гиперболическую спираль Здравствуйте. Задание следующее - построить гиперболическую спираль (r = a × j1/2 + d) в полярной системе координат. Дело в том, что я вообще не имею представления о том, как строить графики в С++.... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6472 / 3120 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
12.04.2014, 03:35
Цитата Сообщение от bldY Посмотреть сообщение
закрывающая скобка того же вида), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная скобка, или, если закрывающих скобок не хватает, число −1.
bldY, представьте что первая ошибочная скобка стоит вначале:
")123+345"
Функция вернёт 0?
Постановка задачи мне не нравится.
Вот такой вариант показывает неоднозначность:
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
#include <iostream>
#include <string>
using namespace std;
bool verify_parenses(string source_str, char parence_left, char parence_right, int& err_pos){
int cnt=0;
err_pos=0;
int sz = (int)source_str.size();
for(int i = 0; i < sz; ++i){
if( source_str[i] == parence_left )cnt++;
if( source_str[i] == parence_right )cnt--;
if(cnt < 0){
cout<<"\nBad parenses verification by placement \")(\"! \nin bool verify_parenses() \nat source_str:\n"<<source_str<<endl<<endl;
err_pos=i;
return false;
}
    }
if(!cnt)return true; 
cout<<"\nBad parenses verification balans! \nin bool verify_parenses() \nat source_str:\n"<<source_str<<endl<<endl;
err_pos=-1;
return false;
}
 
int main(){
int err_pos;
string str1="((1+2)*3+1)/3"; 
if (verify_parenses(str1, '(', ')', err_pos))cout<<"allright";
cout<<"\nerr_pos= "<<err_pos<<endl;
 
string str2=")(1+2)*3+1/3"; 
if (verify_parenses(str2, '(', ')', err_pos))cout<<"allright";
cout<<"\nerr_pos= "<<err_pos<<endl;
 
string str3="((1+2)*3+1/3"; 
if (verify_parenses(str3, '(', ')', err_pos))cout<<"allright";
cout<<"\nerr_pos= "<<err_pos<<endl;
 
system("pause"); 
    return 0; 
}
Хотя может я и не понял условия.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru