18. Значение арифметического выражения

Не решаласьСредняя

Задано числовое выражение. Необходимо вычислить его значение или установить, что оно содержит ошибку. В выражении могут встречаться знаки сложения, вычитания, умножения, скобки и пробелы (пробелов внутри чисел быть не должно). Приоритет операций стандартный. Все числа в выражении целые и по модулю не превосходят 2×1092 \times 10^9. Также гарантируется, что все промежуточные вычисления также не превосходят 2×1092 \times 10^9.

Формат ввода

В первой строке вводится выражение. Его длина не превосходит 100 знаков. После выражения идет переход на новую строчку.

Формат вывода

Выведите значение этого выражения или слово "WRONG", если значение не определено.

Ограничения

Ограничение времени

1 с

Ограничение памяти

256 МБ

Пример 1

Ввод
1+(2*2 - 3)
Вывод
2

Пример 2

Ввод
1+a+1
Вывод
WRONG

Пример 3

Ввод
1 1 + 2
Вывод
WRONG

Теги

Нужно войти, чтобы отправить решение.Войти
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
/*
Для чтения входных данных необходимо получить их
из стандартного потока ввода (stdin).
Данные во входном потоке соответствуют описанному
в условии формату. Обычно входные данные состоят
из нескольких строк.

Можно использовать несколько функций для чтения из stdin:
* scanf() -- читает данные из потока;
* fgets() -- читает строку из потока;
* gets() -- читает строку из потока до символа '\n'.

Чтобы прочитать из строки стандартного потока:
* число -- int var; scanf("%d", &var);
* строку -- char svar[100]; scanf("%s", svar);
* массив чисел известной длины --
int len; scanf("%d", &len);
int* arr = (int*) malloc(len * sizeof(int));
for (int i = 0; i < len; ++i)
scanf("%d", &arr[i]);
* последовательность слов до конца файла --
char word[100];
while (scanf("%s", word) == 1) {
// do something with word
}

Чтобы вывести результат в стандартный поток вывода (stdout),
можно использовать функцию printf().

Возможное решение задачи "Вычислите сумму A+B":


int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
*/

return 0;
}