分析:
この質問は単純なシミュレーションです。1次元の文字列を2次元の文字列にシミュレートすると、出力は比較的安定しますが、1次元の文字列を直接シミュレーションして出力すると、データが1000未満であることが保証されるだけなので、問題が発生します。フォーマットに従って出力する場合は、スペースを埋めて1000を超えてしまうため、1次元配列のサイズは1100より大きくなければなりません。
コード:
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a[1100] = {
0 }, temp;
int r, c, len;
scanf("%d", &r);
getchar();
for (int i = 0; (temp = getchar()) != '\n'; i++)
{
a[i] = temp;
len=i+1;
}
c = (len / r) + (len%r != 0);
for (int i = len; i<r*c; i++)a[i] = ' ';
len = r*c;
for (int i = 0; i<r; i++)
{
for (int j = 0; j<c; j++)
{
printf("%c", a[len + i - j*r - r]);
}
puts("");
}
return 0;
}