#include<bits/stdc++.h>
using namespace std;
string s;
bool ok1 = 1, ok2 = 1;
int a, b, num;
bool judge(int x, int y) {
num = 0;
// 如果某个字符不是数字,直接return false
for(int i = x; i < y; i++) {
if(s[i] > '9' || s[i] < '0')
return false;
}
// 如果能到这一步,证明全是串儿里全是数字
// 接下来的任务就是判断是否越界
for(int i = x; i < y; i++)
num = num * 10 + (s[i] - '0');
if(num < 1 || num > 1000)
return false;
// 从这 return 的话一定是合格的
return true;
}
int main() {
// 可以读入带空格的字符串
getline(cin, s);
int id, len = s.size();
// id 记录第一个空格的位置
for(int i = 0; i < len; i++) {
if(s[i] == ' ') {
id = i;
break;
}
}
// 以首个空格为界的前半段字符串
ok1 = judge(0, id);
a = num;
// 以首个空格为界的后半段字符串
ok2 = judge(id + 1, len);
b = num;
if(ok1 && ok2)
printf("%d + %d = %d", a, b, a + b);
if(!ok1 && ok2)
printf("? + %d = ?", b);
if(ok1 && !ok2)
printf("%d + ? = ?", a);
if(!ok1 && !ok2)
printf("? + ? = ?");
return 0;
}
天梯赛:正整数A + B(思路清晰 && c++源码)
最新推荐文章于 2024-07-12 21:28:00 发布