#include<stdio.h> #include<string.h> #include<math.h> //负数开头的话,就全部往后移,然后前面加'0' int main() { int t; scanf("%d",&t); for(int z=0;z<t;z++) { char a[1100]; int b[1000]; char c[1000]; int p=0,q=0; scanf("%s",a); if(a[0]=='-') { for(int i=strlen(a)-1;i>=0;i--) { a[i+1]=a[i]; } a[0]='0'; } for(int i=0;i<strlen(a);i++) { if(a[i]=='+'||a[i]=='-') { b[p++]=(int)(a[i-1]-'0'); c[q++]=a[i]; } } b[p++]=(int)(a[strlen(a)-1]-'0'); //数字和运算符已经采集完毕 int sum=b[0]; for(int i=1;i<p;i++) { if(c[i-1]=='-') sum=sum-b[i]; else if(c[i-1]=='+') sum+=b[i]; } printf("%d\n",sum); } } |
Double click to view unformatted code.