Не удается найти решение для упражнения K & R 4-6 - PullRequest
2 голосов
/ 09 июля 2010

В K & R нам удалось создать RPN.

Теперь упражнение состоит в том, чтобы:

Добавить команды для обработки переменных, (Легко предоставить двадцать шесть переменные с именами из одной буквы.) Добавить переменную для большинства недавно напечатанное значение.

Так что это должно действовать как интерпретатор Python, где мы можем сделать:

>>>5
>>>_ (where _ prints 5)
>>>_ + 5 (which prints 10)

или А = 5 _ + A (который печатает 10)

и так далее, но я не очень уверен в том, как я хочу сделать это в C. Я просто чувствую себя в тупике.

Ответы [ 2 ]

2 голосов
/ 09 июля 2010

Создать 26-ую переменную. Каждый раз, когда вы что-то печатаете, запишите это значение в 26-ю переменную. Когда они используют _ (или любое другое имя, выбранное вами), читайте из этой переменной.

0 голосов
/ 09 июля 2010

Я думаю, это первый шаг построения калькулятора командной строки.

Разбор входной строки для операндов и оператора.Сопоставьте оператор с перечислением

enum operator { TYPE_ADD, TYPE_SUBTRACT,TYPE_MAX);

Вызовите функцию для вычисления результата

  int    calculate(int i_op1, int i_op2, operator e_operator)
           {
              /*Use switch case to calculate result*/
           }

Сохраните этот результат в переменной.Если вход в строке равен «_», используйте это в качестве первого ввода для функции calculate.

...