问题遇到的现象和发生背景
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
Input
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
Output
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)
代码在自己电脑上面是正确的,提交到判题系统里面却没有输出结果,显示Runtime Error:Floating point exception。
问题相关代码,请勿粘贴截图
#include<stdio.h>
int main()
{
int j=0,l,h,n;
char a[1000],b[250][250],c;
scanf("%d",&n);
getchar();
scanf("%c",&a[j]);
while ( a[j]!='\n') {
h=j%n;
l=250-j/n-1;
b[h][l]=a[j];
j++;
scanf("%c",&a[j]);
}
for ( int i=0;i<n;i++ ) {
for ( int j=l;j<250;j++ ) {
printf("%c",b[i][j]);
}
printf("\n");
}
return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
难道是前面的二维数不能传到一维数吗?
但测试过,可以输出