/* A program that provides a very simple calcluator.
** Version 1.



extern int newnumber( float array[], int N, int i );
extern int addnumbers( float array[], int N, int i );
extern int multnumbers( float array[], int N, int i );
extern char nextchar();



int newnumber( float array[], int N, int i )
{
  if ( i+1 < N )
    i = i+1;
    scanf("%f", &array[i] );
  }
  return i;
}


int addnumbers( float array[], int N, int i )
{
  if ( i >= 1 ){
    i = i-1;
    array[i] = array[i] + array[i+1];
  }
  return i;
}


int multnumbers( float array[], int N, int i )
{
  if ( i >= 1 ){
      i = i-1;
    array[i] = array[i] * array[i+1];
  }
  return i;
}



char nextchar()
{
  /* read across "whitepace" */ 
  do {
    scanf("%c", &ch );
  } while ( ch == ' ' || ch == '\n' );
  return ch;
}

#define NMAX 16;

main()
{ /* A simple calculator */
  float array[NMAX];
  int N = NMAX;
  int i;
  int carry_on;
  char ch;

  i = -1;
  carry_on = 1;
  do {
    /* get use command */
    ch = nextchar();
    /* act on it */
    switch( ch ){
    case 'n':
      i = newnumber( array, N, i );
      break;
    case '+':
      i = addnumbers( array, N, i );
      break;
    case '*':
      i = multnumbers( array, N, i );
      break;
    case 'q':
      carry_on = 0;
      break;
    default:
      break;
    }
    /* print, if there is anything to print */
    if ( i >= 0){
      printf("%f\n", array[i] );
    }
  } while( carry_on )
}


