Краен срок за предаване: 2016.03.31 23:59:59
Точки: 7
На стандартния вход се подава стринг с максимална дължина 12, който репрезентира ЕГН на човек в рамките на Република България.
Примерен вход:
6101047500
Изход:
1
Примерен вход:
1642292840
Изход:
1
Примерен вход:
1653292840
Изход:
0
Примерен вход:
5505046645
Изход:
0
Точки: 12
На стандартният вход можете да получите унарна или бинарна операция във формата:
[argument1 (optional)][space][operation][space][argument2]
Example:
255 + 80
! 30000
Като поддържаните операции са следните:
+
++
-
*
/
%
!
Забележка: всички операции изискват цели числа, за да бъдат изпълнени успешно, но не винаги на входа ще бъдат подавани числови стройности.
Поучавате операции до EOF, като за всяка операция трябва да върнете резултат или да изведете, че операцията не се поддържа. За целта създайте структура command_t
, която съдържа операцията, аргументите и резултата.
Създайте функция int exec_cmd(struct command_t *cmd)
, която връща 0 ако операцията е изпълнена успешно или код за грешка. При успешно извършване на операцията изведете резултата от нея.
Пояснение: кодове за грешки с техните съобщения:
-1 - operation not supported
12 mod 3
1 && 0
-2 - invalid command argument count
example: 15 -
example: 8 ++ 9
-3 - invalid command arguments
example: a + b
-4 - invalid input
example: ba`ti domashnoto
-5 - invalid arithmetic operation
example: 40 / 0
-42 - the answer to life, the universe and everything else
ако резултата от операцията е 42
Примерен вход:
12 + 4
a + b
12 ++
3,14 + 2,71
++ 12
Изход:
16
invalid command arguments
invalid input
invalid command arguments
13