13,825
社区成员
发帖
与我相关
我的任务
分享
while (First)
//循环计算乘、除
{
AnsiString tmpStr=Str.SubString(1,First-1); //截取Str字符串第一位至First-1位的值,后面均同理
int tmp=LastPos(tmpStr); //这个函数是你们自定义的吧..作用不明确.
AnsiString Left=Str.SubString(1,tmp);
AnsiString Mul1=Str.SubString(tmp+1,First-tmp-1);
tmpStr=Str.SubString(First+1,Str.Length()-First);
tmp=FirstPos(tmpStr); //这个函数是你们自定义的吧..作用不明确.
if (tmp==500) //等于或者不等于500的时候对Mul2,Right赋值
{
Mul2=tmpStr;
Right="";
}
else
{
Mul2=tmpStr.SubString(1,tmp-1);
Right=tmpStr.SubString(tmp,tmpStr.Length()-tmp+1);
}
if (MulPos>DivPos)
Middle=IntToStr(StrToInt(Mul1)/StrToInt(Mul2)); //如果MulPos>DivPos则Middle等于Mul1除以Mul2.取整,否则等于Mul1乘以Mul2
else
Middle=IntToStr(StrToInt(Mul1)*StrToInt(Mul2));
Str=Left+Middle+Right;
MulPos=Str.Pos("*");//MulPos为Str字符串中乘号的位置.
DivPos=Str.Pos("/");//DivPos为Str字符串中除号的位置.
First=MulPos; //对First重新赋值.
if(MulPos>DivPos) //如果乘号在前面,就将除号的位置值赋给First
First=DivPos;
if (DivPos==0&&MulPos!=0) //如果无除,并且有乘号.就将乘号位置值赋给First并重置DivPos.下面一个if刚好和这行相反.
{
First=MulPos;
DivPos=5000;
//除号设置为不可能的值
}
if (DivPos!=0 && MulPos==0)
{
First=DivPos;
MulPos=5000;
//乘号设置为不可能的值
}
}