一直输出超限qwq(这ti貌似一点也不难qwq)

首先,谢谢各位码友在百忙之中看我的问题qwq
我的问题:数组a[n][n]改为a[n][n+1]时答案才正确,但是为a[n][n]一直显示输出超限,qwq
一两个测试用例可能是正确的,但是在提交的时候显示的为输出超限,呜呜呜
这是题目哇:

img


这是我写的代码qwq


#include <string.h>
#include <stdio.h>
#include <string.h>
int main()
{
    int i,j,n;
    scanf("%d",&n);
    char a[n][n],b[n][n+1];
        memset(b,'\0',sizeof(b));
    for(i=0;i<n;i++)
    {
      scanf("%s",a[i]);
      getchar();
    }                 //输入
    for(i=0;i<n;i++)
    {
        int k=n-1;
        for(j=0;j<n;j++)
        {
            b[i][j]=a[k--][i];
        }
    }                     //调整
       for(i=0;i<n;i++)
       {
          printf("%s\n",b[i]);
       }                     //输出
    return 0;
}

你定义成char数组,那么要么循环getchar来获取输入,就保证没有问题
而你是用%s以字符串方式输入的,那么数组长度不够就会溢出,结尾的\0溢出,指针越界,就容易造成数据错乱
此外,k这个变量没有意义,把k--改成n-j-1