为什么我的7会变成10?
查看原帖
为什么我的7会变成10?
1253896
ArioKings楼主2024/5/6 22:52

我在输入第一个案例的时候,计算9+7会变成9+10,这是为什么?求解答

#include <cstdio>
using namespace std;
int main() {
	char str[51];
	long long num[50] = {0};
	scanf("%s",str);
	int i = 0,j = 0;
	while(str[i] != '@') {
		if(str[i] >= '0' && str[i] <= '9') {
			num[j] += (long long)(str[i] - '0');
			if(str[i+1] != '.')
				num[j] *= 10;
		}
		else {
			switch(str[i]) {
				case '.':
					j ++;
					break;
				case '+':
					num[j-2] = num[j-2] + num[j-1];
					j --;
					break;
				case'-':
					num[j-2] = num[j-2] - num[j-1];
					j --;
					break;
				case'*':
					num[j-2] = num[j-2] * num[j-1];
					j --;
					break;
				case'/':
					num[j-2] = num[j-2] / num[j-1];
					j --;
					break;
			}
		}
		i ++;
	}
	printf("%ld",num[0]);
}
2024/5/6 22:52
加载中...