样例过不了,但是AC????

P1957 口算练习题

补一下注释,可能是有地方我考虑漏了,希望有神犇能帮我找出来 ```cpp //介于本人的习惯,不想写using namespace std,所以需要加std::来指定变量的命名空间 #include <string> //调用std::to_string用 #include <sstream> //StringStream字符串流 #include <iostream> int main(){ int n, mode = -1; std::cin >> n; //定义字符串流对象 std::stringstream ss; while(n--){ std::string s, tmp; char c; std::cin >> c; if('a' <= c and c <= 'c'){ mode = c - 'a'; //回收空格 std::cin.get(); } else //若不是字母,将这个字符添加到字符串尾 s += c; //读一行,不保留换行符 std::getline(std::cin, tmp); //合并 s+=tmp; //打入字符串流 ss << s; int a, b, ans; //从字符串流中获取数据 ss >> a >> b; //先输入第一个数 std::cout << a; switch(mode){ //判断,输出运算符的同时计算结果 case 0: std::cout.put('+'); ans = a + b; break; case 1: std::cout.put('-'); ans = a - b; break; case 2: std::cout.put('*'); ans = a * b; break; } //清空字符串流中的内容 ss.clear(); //打印第二个数和结果 std::cout << b << '=' << ans << '\n' //计算长度 (输入(从第一个数字字符开始到最后一个数字字符结束)+ 结果的长度) //【就是这里没明白,这里应该再加上=的长度,也就是再+1,这样是符合样例的,但是0分,把+1去掉后,样例不对,但是是AC代码】 //注:to_string函数可以将其他类型转换为std::string对象 //如:(整型)230 -> (std::string对象)"230" << s.length() + std::to_string(ans).length() << '\n'; } return 0; } ```
by winterl @ 2023-04-22 23:25:31


|