命令行实现公式计算



#include<iostream.h>


int main(int n,char*p[])
{
int i,c,j,k=0,t,s=0,num[10];
char ch[9];  //存放运算符

//
for(i=0,j=0;p[1][i]!='\0';i++)
{  
t=j; // j 表示读到的运算符个数


if(p[1][i]=='+'||p[1][i]=='-'||p[1][i]=='*'||p[1][i]=='/')
{
ch[j] = p[1][i];
j++;
}


if(t == j) // 无运算符
{
c = p[1][i] - '0'; //按十进制转换成整数
s = s * 10 + c;
}
if(t!=j) //
{
num[k] = s; //把操作数放入操作数数组
s=0;
k++;
}
}


num[k]=s; // 把最后的操作数放入数组。
//现在有k个运算符,k+1一个操作数。
for(t = 0; t < k; t++)
{
//优先级高的操作数先算,结果放入对应的两个操作数位置
if(ch[t] == '*')
{
            num[t  ] = num[t] * num[t+1];
num[t+1] = num[t];
}
if(ch[t]=='/')
{
num[t  ] = num[t] / num[t+1];
num[t+1] = num[t];
}//遇到‘*’(/),则计算,并且两元素全都变成结果






for(int m = t-1; (ch[m]=='*' || ch[m]=='/') && m>=0; m--)
num[m]=num[m+1];//遇到连着的*和/,则把相关元素全变成结果


}//做完*和/运算


s=num[0];

for(t=0;t<k;t++)
{
if(ch[t]=='+')
s=s+num[t+1];
if(ch[t]=='-')
s=s-num[t+1];
}//做加减运算


cout<<s<<endl;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值