c++代码运行时错误,错误在哪里

当输入为:
3 acm.sjtu.edu.cn
将输入按照3行的Z字形排列:
a s . .
c . j u e u c
m t d n
将它按行输出:
as..c.jueucmtdn
当输入为:
4 acm.sjtu.edu.cn
将输入按照4行的Z字形排列:
a t .
c j u u c
m s . d n
. e
将它按行输出:
at.cjuucms.dn.e

#include
#include
#include
using namespace std;
int main() {
int n,m;
cin >> n;
getchar();
m = 2 * n - 2;
char *a;
a = new char[31];
cin.getline(a, 31);
unsigned int length;
length = strlen(a);
int i = 0, j = 0;
for (i = 0; i < n; ++i) {
if (i == n)break;
for (j = 0; j < length; ++j) {
if (j == length)break;
if (i == 0 && j%m == 0) cout << a[j];
if (i != 0 && (j%m == (m - i) || j%m == i)) cout << a[j];
}
}
return 0;
}

1个回答

当n==1的时候代码不正确

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问