2010-07-09 6 views
2

K & R에서 우리는 RPN을 만들 수있었습니다. 에K & R 운동 4-6에 대한 해결책을 찾을 수 없습니다.

운동은 지금 :

변수를 처리하기위한 명령을 추가, (그것은 단일 문자 이름을 가진 스물여섯 변수를 제공하기 쉽습니다.) 가장 최근에 인쇄 된 값을 변수를 추가합니다.

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

또는 을 (10 출력) = 5 _ + A

등 :

는 그래서 우리가 할 수있는 파이썬 인터프리터처럼 어느 정도 역할을하기위한 것입니다 하지만 C에서 어떻게 돌아가고 싶은지에 대해서는 잘 모르겠습니다.

답변

2

26 번째 변수를 만듭니다. 어떤 것을 인쇄 할 때마다 그 값을 26 번째 변수에 씁니다. 그들이 _ (또는 당신이 선택한 이름)을 사용할 때 그 변수를 읽으십시오.

+0

변수 이름을 사용하여 변수를 읽을 수 있어야합니다. "A"를 입력하면 5, B는 6, B는 6을 인쇄합니다. , _은 마지막 변수를 인쇄하고, A + B는 11을 인쇄하고, _ + 4는 15를 인쇄하는 식으로 계속됩니다. – lamenuts

+0

예상되는 것이 명확하지 않습니다. 변수를 피연산자로 사용하는 것이 좋습니다. 그러나 지금까지이 장에서 필요한 도구는 쉽게 이해할 수 있도록 제공되지 않았습니다. 나는 그 대답의 제안이 괜찮다고 생각한다. – Elyasin

0

이것은 명령 줄 계산기를 만드는 첫 단계입니다.

피연산자와 연산자에 대한 입력 문자열을 구문 분석하십시오. 변수에 저장을 결과

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

이 결과를 계산하기 위해 통화 기능

enum operator { TYPE_ADD, TYPE_SUBTRACT,TYPE_MAX); 

열거에 연산자를지도. 문자열의 입력에서 "_"와 같으면이 문자를 함수 calculate의 첫 번째 입력으로 사용하십시오.

관련 문제