11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
||||||
1 | ||||||
Баланс скобок25.02.2012, 06:21. Показов 3790. Ответов 38
Метки нет (Все метки)
Доброе утро, мне было задано написать программу о том, соответствует ли каждой открывающей скобке, каждая закрывающая, среди символов строки могут встречаться и другие символы... вот он код. Программа не работает при входных данных
ывп() ()вапрвапоаопр()( ()()()()()()()( в чем проблема? помогите исправить, спасибо большое
0
|
25.02.2012, 06:21 | |
Ответы с готовыми решениями:
38
Баланс скобок Баланс скобок Баланс скобок Баланс скобок |
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 16:15 [ТС] | 21 |
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
25.02.2012, 16:20 | 22 | |||||
ну вот наверно вот так:
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 16:23 [ТС] | 23 |
Спасибо, пока тестирую, только со стрингами оно надо в идеале, не сможете написать? а пока тестирую
0
|
Higher
|
||||||
25.02.2012, 16:23 | 24 | |||||
Что-ж так тяжко то...
В условии про файлы ничего сказано не было, между прочим. Переделал ваш код:
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
25.02.2012, 16:29 | 25 |
Если бы я принимал работу, то предпочел бы четвертый вариант стрингов
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 16:30 [ТС] | 26 |
DU, Последний самый?)
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
25.02.2012, 16:30 | 27 |
ну да. последний. я уже поправился
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 16:31 [ТС] | 28 |
DU, Ок, пока тестирую) если сдам, поцеловать готова автора в щечку и сказать огромное спасибо
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
25.02.2012, 16:36 | 29 | |||||
могу сказать, что вариант чтения строки из файла может все испортить.
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 16:37 [ТС] | 30 |
DU, Ээээм, другую лабу делала, та же проблема была, ну, вроде через getline можно, но оно с файлами не работает - я не смогла во всяком случае
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
25.02.2012, 16:40 | 31 | |||||
вот такая запись загрузит все содержимое файла в строку
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 16:42 [ТС] | 32 |
DU, Не, построчно оно не надо, эту строку и до и после ставила - не хочет кушать ее, потом ошибка в чтении из файла и переменная str подсвечивается
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
25.02.2012, 16:58 | 33 |
ошибка компиляции или что?
чтобы компилилось, нужно указывать все нужные инклуды. #include <string> // для std::string #include <iterator> // для std::istreambuf_iterator<char> если что-то другое при компиляции, то нужно смотреть на код и на ошибку, которая выдается.
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 16:59 [ТС] | 34 |
DU,
1 IntelliSense: no operator ">>" matches these operands operand types are: std::ifstream >> std::string 2 IntelliSense: no suitable conversion function from "std::string" to "const char *" exists
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
25.02.2012, 17:04 | 35 |
полный с++ код сюда еще. без него не понятно что вы там написали и почему ругается. и строчку, на которую ругается.
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 17:05 [ТС] | 36 |
DU,
Код
#include "cstring" #include "fstream" bool is_correct( const char * ); int main() { std::ifstream fin("in.txt", std::ios::in); std::ofstream fout("out.txt", std::ios::out); std::string str((std::istreambuf_iterator<char>(fin)), std::istreambuf_iterator<char>()); char str[255]; fin >> str; fout << ( is_correct(str) ? "Will be OK" : "Error" ) << std::endl; return 0; } bool is_correct( const char * str ) { unsigned counter = 0; while ( *str ) { if ( *str == '(' ) ++counter; else if ( *str == ')' ) { if ( counter == 0 ) return false; --counter; } ++str; } return counter == 0; } Код
fin >> str; fout << ( is_correct(str) ? "Will be OK" : "Error" ) << std::endl;
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
25.02.2012, 17:09 | 37 | |||||
нет нужных инклудов. я уже написал какие нужно.
строки 11 и 14 не нужны. в 11 строке появляется переменная массив с именем str, хотя строкой выше уже заведена переменная типа std::string с таким же именем. эта же строка инициализируется содержимым файла. поэтому не нужна строка 14
0
|
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
|
||||||
25.02.2012, 17:18 | 38 | |||||
0
|
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
|
|
25.02.2012, 21:30 [ТС] | 39 |
Все отлично, всем огромнейшее спасибо, кто откликнулся, в понедельник сдаваться пойду, а пока другую прогу писать буду, спасибо, мальчики, большое Вам!
Добавлено через 2 часа 39 минут Ребята, подкажте, в чем проблема в чтении файла? спасибо Код
#include "fstream" #include "string" using namespace std; int main () { ifstream fin("in.txt", std::ios::in); ofstream fout("out.txt", std::ios::out); char Str[255];int i = 0; while (1) { char ch = fin.get(); if (fin.eof()) break; Str[i]= ch; i++; } Str[i] = '\0'; fout << Str; }
0
|
25.02.2012, 21:30 | |
25.02.2012, 21:30 | |
Помогаю со студенческими работами здесь
39
Баланс круглых скобок Проверить баланс скобок Баланс скобок в файле Баланс фигурных скобок в файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |