I have just written this small calculator, and it kinda works.
2+2 = 4
4+4 = 8
but
2+2+2 = 12
4-2 = -8
So there is obviosly some glitches, and i suspect the "recurrsion". I have tried lots of adjustments but none solves the problem. Maybe you see something that i dont:
Code:using System;
using System.Collections.Generic;
using System.Text;
namespace minicalc
{
class Program
{
public static String input, tmpexp; // Expression
public static int length; // Lenght of input
public static int curPos; // Current token
public static int value, temp = 0; // value holders
public static String Op;
static void Main(string[] args)
{
System.Console.WriteLine("Please enter expression to calculate: ");
input = System.Console.ReadLine();
length = input.Length;
curPos = 0;
while (curPos < length)
{
if (input[curPos] == '0' || input[curPos] == '1' || input[curPos] == '2' || input[curPos] == '3' || input[curPos] == '4' || input[curPos] == '5' || input[curPos] == '6' || input[curPos] == '7' || input[curPos] == '8' || input[curPos] == '9')
{
tmpexp += input[curPos];
}
temp += Convert.ToInt32(tmpexp);
Op = Convert.ToString(input[curPos ]);
// Determine which operator we have and use it on the result
switch (Op)
{
case "+": value += temp;
break;
case "-": value -= temp;
break;
case "*": value *= temp;
break;
}
curPos++;
}
System.Console.WriteLine("Result of calculation: " + value);
System.Console.ReadLine();
}
}
}
