中级守护
这是计算器3.0,如果有想看1.0,2.0的扣1
催更计算器的扣2
想看恐怖规则怪谈的扣3
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
string s[1000005];
int main()
{
cout<<"使用说明:"<<endl<<"1.输入的除数不能为零,否则会显示“除数不能为零,请重新输入”;"<<endl<<"2.输入除“0~9”等数字及“+、-、*、/”等运算符外的字符,会显示“输入不合法,请重新输入”;"<<endl<<"3.除法运算保留至整数位;"<<endl<<"4.需要退出程序时输入“退出”或者直接点击关闭。"<<endl<<endl;
while(1)
{
cout<<"请输入算式:";
string t;
cin>>t;
if(t=="退出")
{
cout<<"欢迎下次光临!";
return 0;
}
while(1)
{
bool flag=1;
for(int i=0;i<t.size();i++)
{
if(t[i]!='+'&&t[i]!='-'&&t[i]!='*'&&t[i]!='/')
{
if(t[i]<'0'||t[i]>'9')
{
cout<<"输入不合法,";
flag=0;
break;
}
}
}
for(int i=0;i<t.size();i++)
{
if(t[i]=='/'&&t[i+1]=='0')
{
if(t[i+2]<'0'||t[i+2]>'9')
{
cout<<"除数不能为零,";
flag=0;
break;
}
}
}
if(flag==0){
cout<<"请重新输入:";
cin>>t;
if(t=="退出")
{
cout<<"欢迎下次光临!";
return 0;
}
}
else
{
break;
}
}
t+="+0";
int j=1;
for(int i=0;i<t.size();i++)
{
if(t[i]>='0'&&t[i]<='9'||t[i]=='*'||t[i]=='/')
{
s[j]+=t[i];
}
else
{
s[j]+=t[i];
j++;
}
}
for(int i=1;i<=j;i++)
{
int p1=s[i].find("*",0);
int p2=s[i].find("/",0);
if(p1!=-1||p2!=-1)
{
int zh=0;
int dq=0;
string dt=s[i];
char d1;
int pos=0;
for(int k=0;k<dt.size();k++)
{
if(dt[k]>='0'&&dt[k]<='9')
{
zh*=10;
zh+=int(dt[k]-'0');
}
else
{
d1=dt[k];
pos=k;
break;
}
}
char dn=d1;
for(int k=pos+1;k<dt.size();k++)
{
if(dt[k]>='0'&&dt[k]<='9')
{
dq*=10;
dq+=int(dt[k]-'0');
}
else
{
if(dn=='*')
{
zh*=dq;
}
else if(dn=='/')
{
int ttt=zh*1.0/dq+0.5;
zh=ttt;
}
dn=dt[k];
dq=0;
}
}
if(dn=='*')
{
zh*=dq;
}
else if(dn=='/')
{
zh/=dq;
}
int m=0;
string ms="";
while(zh)
{
ms+=(zh%10+'0');
zh/=10;
}
s[i]="";
for(int k=ms.size()-1;k>=0;k--)
{
s[i]+=ms[k];
}
if(dt[dt.size()-1]=='+'||dt[dt.size()-1]=='-'||dt[dt.size()-1]=='*'||dt[dt.size()-1]=='/')
{
s[i]+=dt[dt.size()-1];
}
}
}
t="";
for(int i=1;i<=j;i++)
{
t+=s[i];
}
int t1=0,pos=0;
int sum=0;
char d1;
for(int i=0;i<t.size();i++)
{
if(t[i]<='9'&&t[i]>='0')
{
t1*=10;
t1+=int(t[i]-'0');
}
else
{
pos=i;
d1=t[i];
break;
}
}
char dn=d1;
for(int i=pos+1;i<t.size();i++)
{
if(t[i]!='+'&&t[i]!='-'&&t[i]!='*'&&t[i]!='/')
{
sum*=10;
sum+=int(t[i]-'0');
}
else
{
if(dn=='+')
{
t1+=sum;
}
else if(dn=='-')
{
t1-=sum;
}
dn=t[i];
sum=0;
}
}
if(dn=='+')
{
t1+=sum;
}
else if(dn=='-')
{
t1-=sum;
}
cout<<"结果是:"<<t1;
for(int i=1;i<=1000000;i++)
{
s[i]="";
}
cout<<endl;
}
}