使用链接列表的RNB计算器

时间:2018-04-10 00:06:01

标签: c++

include <iostream>
#include <string.h>

using namespace std;

#include "Stack.h"

int main()
{
  Stack<float>b;
  Stack <float> a(b);
  char num[100];
  while (true)
  {

    cout << "Enter: " << endl;
    cin >> num;

    if(strcmp(num,"Q") == 0 ||strcmp(num,"q")==0)
      break;


    if(strcmp(num,"*")==0)
     {


     float num1 = b.pop();//Error: Cannot initialize a variable of type 'float' with an rvalue of type 'void'

     float num2 = b.pop();// Error: Cannot initialize a variable of type 'float' with an rvalue of type 'void'

     if(num1 && num2){

     a.push(num1*num2);

     }

这是我计划的一部分。问题是我需要存储我从列表中弹出的值,然后将它们相乘并存储起来。在这里,我试图将值存储在浮点数中,这样我就可以进行操作但是如上所述它给了我一个错误,任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您的"Stack.h"<stack>类似:

参考Stack.pop()

  

返回值

     

所以你应该使用Stack.top()

  

返回值

     

对堆栈中顶部元素的引用。

示例代码

float num = b.top(); // get top value of stack
b.pop(); // pop it, not used anymore
// do something with num here