本地运行没问题,但交上去错了?
  • 板块学术版
  • 楼主梦回江南
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/2/10 13:40
  • 上次更新2023/10/28 09:03:04
查看原帖
本地运行没问题,但交上去错了?
492676
梦回江南楼主2022/2/10 13:40

题目

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

int ws(int);
void work();
void ys(int &, int &, int &);
void jia();
void jian();
void cheng();

int n, length;
string a;
char ch;

int main() {
	cin >> n;
	work();
	return 0;
}

int ws(int x) {
	int w = 0;
	if(x < 0) {
		x = abs(x);
		w++;
	}
	while(x > 0) {
		x /= 10;
		w++;
	}
	return w;
}

void work() {
	while(n-- >= 0) {
		getline(cin, a);
		length = a.length();
		if(a[0] == 'a') {
			jia();
			ch = 'a';
		}
		else if(a[0] == 'b') {
			jian();
			ch = 'b';
		}
		else if(a[0] == 'c') {
			cheng();
			ch = 'c';
		}
		else if(isdigit(a[0])) {
			if(ch == 'a')
				jia();
			else if(ch == 'b')
				jian();
			else if(ch == 'c')
				cheng();
		}
	}
}

void ys(int &i, int &bjs, int &js) {
	if(!isdigit(a[i]))
		i += 2;
	while(a[i] != ' ') {
		bjs *= 10;
		bjs += a[i] - '0';
		i++;
	}
	i++;
	while(i < length) {
		js *= 10;
		js += a[i] - '0';
		i++;
	}
	
	return ;
} 

void jia() {
	int i = 0, js = 0, bjs = 0;
	ys(i, bjs, js);
	int h = bjs + js;
	int l = ws(bjs) + ws(js) + ws(h) + 2;
	printf("%d+%d=%d\n%d\n", bjs, js, h, l);
	return ;
}

void jian() {
	int i = 0, js = 0, bjs = 0;
	ys(i, bjs, js);
	int h = bjs - js;
	int l = ws(bjs) + ws(js) + ws(h) + 2;
	printf("%d-%d=%d\n%d\n", bjs, js, h, l);
	return ;
}

void cheng() {
	int i = 0, cs = 0, bcs = 0;
	ys(i, bcs, cs);
	int h = bcs * cs;
	int l = ws(bcs) + ws(cs) + ws(h) + 2;
	printf("%d*%d=%d\n%d\n", bcs, cs, h, l);
	return ;
}
2022/2/10 13:40
加载中...