报错题目
外星密码 - 洛谷
具体报错信息
Runtime Error.Received signal 6: Aborted / IOT trap.
错误代码
#include <iostream>
#include <cstring>
using namespace std;string sol() {string s = "";string t = "";char c = ' ';int n = 0;while (cin >> c) {if (c == '[') {cin >> n;t = sol();while (n--)s += t;} else {if (c == ']')return s;elses += c;}}
}int main() {cout << sol();return 0;
}
错误原因
(还得是chat)。。自己改了半天,从cin改成scanf还是有问题。绝对没想到问题会出在这里。
更正代码
#include <iostream>
#include <cstring>
using namespace std;string sol() {string s = "";string t = "";char c = ' ';int n = 0;while (cin >> c) {if (c == '[') {cin >> n;t = sol();while (n--)s += t;} else {if (c == ']')return s;elses += c;}}return s;
}int main() {cout << sol();return 0;
}
反思
其实dev是警告过我的,但是考虑到有的路径确实不会返回,就没有当回事。
而且报的是IO的错,还以为是读入的问题。
改代码还真不是个“头痛医头,脚痛医脚”的事儿!
尽量写鲁棒性强的代码吧!