View Code of Problem 3855

#include<stdio.h>
#include<string.h>
int main() {
	int t;
	scanf("%d",&t);
	while(t--){
		char a[1000];
		scanf("%s",a);
		int sum = 0,i;
		int num,flag = 1;
		int len = strlen(a);
		for(i = 0;i < len; i++){
			if(a[i]<='9'&&a[i]>='0'){
				num = 0;     //当前数 
				while(a[i]<='9'&&a[i]>='0'){
					num = num*10 + a[i++]-'0';			 //通过减去'0'可以将字符转换为int类型的数值
				}
				i--;
			}
			else if(a[i]=='-'){
				flag = 0;
				num = 0;
			}
			else if(a[i]=='+'){
				flag = 1;
				num = 0;
			}
			if(flag == 1){
				sum = sum+num;
			}
			else{
				sum = sum-num;
			}
		}
		printf("%d\n",sum);
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 3855