写了个高级67pts代码求调
查看原帖
写了个高级67pts代码求调
681558
Weizhuo_Zhao楼主2024/9/3 13:54
#include <bits/stdc++.h>
using namespace std;

bool is_(char ch) {
	return ch >= '0' && ch <= '9';
}
char char_;

inline int read() {
	int s = 0, f = 1;
	char ch = getchar();
	while (!is_(ch)) {
		if (ch == '-')
			f = -1;
		if (ch == '?')
			return INT_MAX;
		ch = getchar();
	}
	while (ch == ' ' || is_(ch)) {
		if (ch != ' ')
			s = s * 10 + ch - '0';
		ch = getchar();
	}
	char_ = ch;
	return s * f;
}

double count(int a, char ch, int b) {
	switch (ch) {
		case '+':
			return a * 1.0 + b;
		case '-':
			return a * 1.0 - b;
		case '*':
			return a * 1.0 * b;
		case '/':
			return a * 1.0 / b;
	}
}

bool check(char ch) {
	return ch == '+' || ch == '*';
}
map<char, char>r;

void cxk() {
	r['+'] = '-';
	r['-'] = '+';
	r['*'] = '/';
	r['/'] = '*';
}

int main() {
	int a, b, c;
	char count_ch;
	a = read();
	count_ch = char_;
	b = read();
	c = read();
	double ans;
	if (c == INT_MAX)
		ans = count(a, count_ch, b);
	cxk();
	if (a == INT_MAX)
		if (check(count_ch))
			ans = count(c, r[count_ch], b);
		else
			ans = count(b, r[count_ch], c);
	if (b == INT_MAX)
		if (check(count_ch))
			ans = count(c, r[count_ch], a);
		else
			ans = count(a, count_ch, c);
	printf("%.2f", ans);
	return 0;
}
2024/9/3 13:54
加载中...