1.格式错误:您的程序输出的格式不符合要求(比如空格和换行与要求不一致)case通过率为0.00%
题目链接
初始代码
#include <iostream>
#include <cstring>
using namespace std;
class Madeline {
private:
int n = 0;
int k[100] = { 0 };
string t[100] = { "/0" };
string s[100] = { "/0" };
public:
void Madeline1();
void Madeline2();
};
void Madeline::Madeline1() {
cin >> n;
string x, y;
for (int i = 0; i < n; i++) {
cin >> t[i];
if (t[i] != "QuickDrop" && t[i] != "Squat" && t[i] != "Grasp" && t[i] != "Jump")
cin >> s[i];
if (t[i] == "QuickDrop") k[i] = 1;
else if (t[i] == "Squat") k[i] = 1;
else if (t[i] == "Grasp") k[i] = 2;
else if (t[i] == "Jump") k[i] = 3;
else if (t[i] == "left" && s[i] == "Walk") k[i] = 4;
else if (t[i] == "right" && s[i] == "Walk") k[i] = 5;
else if (t[i] == "leftup" && s[i] == "Dash") k[i] = 6;
else if (t[i] == "up" && s[i] == "Dash") k[i] = 7;
else if (t[i] == "rightup" && s[i] == "Dash") k[i] = 8;
else if (t[i] == "left" && s[i] == "Dash") k[i] = 9;
else if (t[i] == "right" && s[i] == "Dash") k[i] = 10;
else if (t[i] == "leftdown" && s[i] == "Dash") k[i] = 11;
else if (t[i] == "down" && s[i] == "Dash") k[i] = 12;
else if (t[i] == "rightdown" && s[i] == "Dash") k[i] = 13;
}
cout << endl; //出错原因,多余
}
void Madeline::Madeline2() {
int a = 0;
for (int i = 0; i < n; i++) {
a = k[i];
switch (a) {
case 1: cout << "down" << endl; break;
case 2: cout << "Z" << endl; break;
case 3: cout << "C" << endl; break;
case 4: cout << "left" << endl; break;
case 5: cout << "right" << endl; break;
case 6: cout << "left up X" << endl; break;
case 7: cout << "up X" << endl; break;
case 8: cout << "right up X" << endl; break;
case 9: cout << "left X" << endl; break;
case 10: cout << "right X" << endl; break;
case 11: cout << "left down X" << endl; break;
case 12: cout << "down X" << endl; break;
case 13: cout << "right down X" << endl; break;
}
}
};
int main() {
Madeline m;
m.Madeline1();
m.Madeline2();
return 0;
}
提交:
出错原因
- 第36行多了句
cout << endl;
- 对牛客的编译环境不了解,不知道自测的用法
更改
删去第36行的
cout<<endl;
2.段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起case通过率为0.00%
代码
#include <iostream>
#include <cstring>
using namespace std;
class Madeline {
private:
int n = 0;
int k[100] = { 0 };
string t[100] = { "/0" };
string s[100] = { "/0" };
public:
void Madeline1();
void Madeline2();
};
void Madeline::Madeline1() {
cin >> n;
string x, y;
for (int i = 0; i < n; i++) {
cin >> t[i];
if (t[i] != "QuickDrop" && t[i] != "Squat" && t[i] != "Grasp" && t[i] != "Jump")
cin >> s[i];
if (t[i] == "QuickDrop") k[i] = 1;
else if (t[i] == "Squat") k[i] = 1;
else if (t[i] == "Grasp") k[i] = 2;
else if (t[i] == "Jump") k[i] = 3;
else if (t[i] == "left" && s[i] == "Walk") k[i] = 4;
else if (t[i] == "right" && s[i] == "Walk") k[i] = 5;
else if (t[i] == "leftup" && s[i] == "Dash") k[i] = 6;
else if (t[i] == "up" && s[i] == "Dash") k[i] = 7;
else if (t[i] == "rightup" && s[i] == "Dash") k[i] = 8;
else if (t[i] == "left" && s[i] == "Dash") k[i] = 9;
else if (t[i] == "right" && s[i] == "Dash") k[i] = 10;
else if (t[i] == "leftdown" && s[i] == "Dash") k[i] = 11;
else if (t[i] == "down" && s[i] == "Dash") k[i] = 12;
else if (t[i] == "rightdown" && s[i] == "Dash") k[i] = 13;
}
}
void Madeline::Madeline2() {
int a = 0;
for (int i = 0; i < n; i++) {
a = k[i];
switch (a) {
case 1: cout << "down" << endl; break;
case 2: cout << "Z" << endl; break;
case 3: cout << "C" << endl; break;
case 4: cout << "left" << endl; break;
case 5: cout << "right" << endl; break;
case 6: cout << "left up X" << endl; break;
case 7: cout << "up X" << endl; break;
case 8: cout << "right up X" << endl; break;
case 9: cout << "left X" << endl; break;
case 10: cout << "right X" << endl; break;
case 11: cout << "left down X" << endl; break;
case 12: cout << "down X" << endl; break;
case 13: cout << "right down X" << endl; break;
}
}
};
int main() {
Madeline m;
m.Madeline1();
m.Madeline2();
return 0;
}
提交:
出错原因
- 不符合题目的测试用例
int k[100] = { 0 };
string t[100] = { "/0" };
string s[100] = { "/0" };
更改
int k[10000] = { 0 };
string t[10000] = { "/0" };
string s[10000] = { "/0" };