/1.多位数 2.多重括号 3.可带负数。。。。。。。。。
修改函数【计算无括号表达式】和【多重括号运算】。。。。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//string s = "(3*((1+2)*4/(1+1)))-(2*(4-2))";
//string s = "(1*(2+10)+1)-4";
//string s = "2*(6*(2-6)/(1+1))-((-2)*2)+(((1+1)+1)+1)";
string s = "(-12-3*(222-224))+(-5)*(-12)/(11-13)+(11+33)";
//string s = "-12+(-10)*(2-4)/(-2)";
char[] str = new char[s.Length];
for (int i = 0; i < s.Length; i++)
{
str[i] = s[i];
//Console.Write(str[i]);
}
int[,] KuoHao_Index = new int[10, 2];
//取括号下标(str, KuoHao_Index);
int a = 多重括号运算(str, str.Length);
//for(int i=0;
Console.WriteLine("ZhangBilei: " + a);
Console.ReadLine();
}
public static void 打()
{
Console.WriteLine("FSDFSDFSDFDSF");
}
public static void 取括号下标(char[] str, int[,] KuoHao_Index)
{
int label = 1;//label记录括号的层次
int length = str.Length;//记录str的长度
int count = 0;//记录括号的对数
bool left = false;//第一层中的当前左括号下标已经录入则left为true;
//bool right = false;//第一层中的当前右括号下标已经录入则right为true;
for (int i = 0; i < length; i++)
{
if (str[i] == '(')
{
if (left == false && label == 1)
{
KuoHao_Index[count, 0] = i;
left = true;
}
else
label++;
}
if (str[i] == ')')
{
if (left == true && label == 1)
{
KuoHao_Index[count, 1] = i;
count++;
left = false;
}
else
label--;
}
}
}
public static int 多重括号运算(char[] str, int length)
{
int[,] KuoHao_Index = new int[10, 2];//存括号的下标
取括号下标(str, KuoHao_Index);
//for (int i = 0; i < 10; i++)
//{
// Co