璟雯院

珺璟如晔,雯华若锦

用户工具

站点工具


icpc:problems:luogup1022
problems
名称计算器的改良
题目编号P1022
题目链接luogu.com.cn/…
来源Luogu
算法分类字符串, 模拟
难易程度一般般

计算器的改良

想法

特判比较多。需要区分左边与右边

代码实现

#include<cstdio>
#include<cstring>
char line[110];
int main() {
	scanf("%s", line);
	int len = strlen(line);
	int A=0, B=0, C=0, D=0, temp=0, flag = 1;
	char c;
	for(int i=0; i<len; i++) {
		if(line[i] <= '9' && line[i] >= '0') {
			temp = temp * 10 + line[i]-'0';
			continue;
		}
		if(line[i] <= 'z' && line[i] >= 'a') {
			if(temp == 0) temp = 1;
			c = line[i];
			A += flag * temp;
			flag = 1; temp = 0;
			continue;
		}
		B += flag * temp;
		flag = 1; temp = 0;
		if(line[i] == '=') {
			C = A; D = B;
			A = 0; B = 0;
		}
		else if(line[i] == '-') {
			flag = -1;
		}
	}
	if(temp != 0) {
		B += flag*temp;
	}
	if(D-B == 0)
		printf("%c=0.000", c);
	else
		printf("%c=%.3lf", c, 1.0*(D-B)/(A-C));
	return 0;
}
/app/www/public/data/pages/icpc/problems/luogup1022.txt · 最后更改: 2024/03/02 12:14 由 温婕莺