View Code of Problem 3855

#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.


Back to problem 3855