С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 33
1

Проверить правильно ли расставлены скобки в арифметическом выражении

24.12.2014, 10:30. Показов 2547. Ответов 4
Метки нет (Все метки)

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

а) Ответом должны служить слова ДА или НЕТ

б) В случае неправильности расстановки скобок:

1) если имеются лишние правые (закрывающие) скобки, то выдать сообщение с указанием позиции первой такой скобки

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
#include "stdafx.h"
#include <iostream>
 
int CheckS(unsigned char* s, unsigned int len ) 
{
   int k = 0;
   for(int i=0; i<len; i++)
   {
      switch (s[i])
      {
         case '(': k++; break;
         case ')': if(k) k--; else 
         {
            cout<<"НЕТ. Лишняя правая скобка в позиции "<<i+1<<endl;
            return i+1;
         }
         break;
      }
   } 
   if (k) 
cout<<"НЕТ. Лишние левые скобки. Их количество "<<k<<endl;
   else 
cout<<"ДА"<<endl.
 
   return k;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2014, 10:30
Ответы с готовыми решениями:

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

Проверить, правильно ли расставлены скобки в выражении
Задача: &quot;Строка содержит арифметическое выражение, в котором используются круглые скобки, в том...

Проверить, что в заданной последовательности символов правильно расставлены скобки
Проверить в заданной последовательности символов расставленые скобки (то есть справа от каждой...

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

4
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
24.12.2014, 11:31 2
Эмиль95, а что с вашим кодом не так?

я бы, правда, написал проверку явную:
C++
1
case ')': if(k>0) k--; else
но, по сути, ваш код тоже должен работать.

Добавлено через 1 минуту
Цитата Сообщение от Эмиль95 Посмотреть сообщение
cout<<"ДА"<<endl.
ну и тут вместо точки просится точка с запятой...
C++
1
cout<<"ДА"<<endl;
0
2686 / 2258 / 244
Регистрация: 03.07.2012
Сообщений: 8,216
Записей в блоге: 1
24.12.2014, 12:11 3
Не надо дублировать тему:Задача со скобками
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 33
24.12.2014, 12:12  [ТС] 4
но все же не работает(
0
Модератор
Эксперт С++
13706 / 10909 / 6473
Регистрация: 18.12.2011
Сообщений: 29,125
24.12.2014, 12:37 5
Цитата Сообщение от Эмиль95 Посмотреть сообщение
не работает
Это не информативно.
На каком примере и в какой строке (пройдитесь отладчиком по коду) не так?
https://www.cyberforum.ru/cpp-... 62479.html
0
24.12.2014, 12:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2014, 12:37
Помогаю со студенческими работами здесь

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

Правильно ли расставлены скобки в алгебраическом выражении
Разработать программу, которая проверяет, правильно ли расставлены скобки в алгебраическом...

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

Проверить,правильно ли расставлены круглые скобки
Проверить, правильно ли в данной строке расставлены круглые скобки (т.е. находится ли справа от...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru