NOIP2000 普及组 计算器改良
大致意思是叫我们编个程序,计算一元一次方程
只包含整数、小写字母及 +、-、= 这三个数学符号
#include
using namespace std;
double cntx=0,cnty=0;
char bef,q;
int main()
{
int k,p,num=0;
k=1,p=1;
while(1)
{
char s=getchar();
if(s=='\n')
break;
if(s=='-'){
if(bef>='0'&&bef<='9'){
cntx=cntx+k*p*num;
num=0;
}
else if(bef>='a'&&bef<='z'){
q=bef;
if(num==0)
num=1;
cnty=cnty-k*p*num;
num=0;
}
k=-1;
}
if(s=='+'){
if(bef>='0'&&bef<='9'){
cntx=cntx+k*p*num;
num=0;
}
else if(bef>='a'&&bef<='z'){
q=bef;
if(num==0)
num=1;
cnty=cnty-k*p*num;
num=0;
}
k=1;
}
if(s>='0'&&s<='9')
{
int x=int(s)-48;
num=num*10+x;
// cout<if(s=='='){
if(bef>='0'&&bef<='9'){
cntx=cntx+k*p*num;
num=0;
}
else if(bef>='a'&&bef<='z'){
q=bef;
if(num==0)
num=1;
// cout<cnty=cnty-k*p*num;
num=0;
// cout<p=-p;k=1;
}
bef=s;
// cout<" ";
}
// cout<if(bef>='0'&&bef<='9'){
cntx=cntx+k*p*num;
num=0;
}
else if(bef>='a'&&bef<='z'){
q=bef;
if(num==0)
num=k;
cnty=cnty-k*p*num;
num=0;
}
// cout<" "<if(cntx==0)
cnty=1;
cout<"="<3)<0;
}
结果WA了
郁闷的下载了测试点
结果是对的