Здравствуйте, вот решил решить пару олимпиадных задачек, наткнулся на одну из простейших, где нужно решить линейное уравнение с одной переменной и числами от 0 до 9 (поэтому алгоритм бессовестно привязал к позициям). И в одной из ветвей кода ( x = equation[4] + equation[2]; ) происходит что-то совсем не то. Если ввести x-1=7 выводит 104, а нужно, конечно, 8.
Console.WriteLine("Введите уравнение: ");
string equation = Console.ReadLine();
int x;
if (!Char.IsDigit(equation[0]))
{
if (equation[1] == '+')
{
x = equation[4] - equation[2];
}
else
{
x = equation[4] + equation[2];
}
}
else
{
if (equation[1] == '+')
{
x = equation[4] - equation[0];
}
else
{
x = -(equation[4] - equation[0]);
}
}
Console.WriteLine("x: " + x);
Обычная олимпиадная задачка, вроде бы все очевидно, но вторая ветвь кода отчаянно не хочет работать. Подскажите, где я ошибся, идей совсем нет.