算法的一个简单问题。朋友们看看

以下是我的代码,书上看的算法,vs却运行不出来,还请麻烦各位懂得帮忙看看该怎么改。
/* 打印任意n维螺旋矩阵如:

  • 1 12 11 10
  • 2 13 16 9
  • 3 14 15 8
  • 4 5 6 7
  • /
    #include<stdio.h>
    int main()
    {
    int i, j, k, n,t, a[50][50], b[2], x, y;
    scanf_s("%d", &n);
    b[0] = 0, b[1] = 1;
    k = n;
    t = 1;
    x = 1;
    while (x <= n * n)
    {
       for (y = 1; y < 2 * k - 1; y++)
       {
           b[y / (k + 1)] = b[y / (k + 1)] + t;
           a[b[0]][b[1]] = x;
           x++;
       }
       k--;
       t = t*(-1);
    
    }
    for (i = 1; i <= n; i++)
    {
       for (j = 1; j <=n; j++)
       {
           printf("%3d", a[i][j]);
       }
       printf("\n");
    
    }
    return 0;
    }