C++ 蛇形矩阵(); 蛇形矩阵(false);
void 蛇形矩阵(bool 正 = true) {//缘由https://bbs.bccn.net/viewthread.php?tid=499489&page=1&extra=#pid2720322 int n, x, y; cin >> n; x = y = n / 2; int a[50][50]{{ 0 }}; int num = 1, 上左 = x - 1, 下右 = x + 1, 向 = 1; a[x][y] = num; while (num<n*n) { if (向) { if (正 ? y > 上左:y < 下右) 正 ? a[x][--y] = ++num : a[x][++y] = ++num; else if (x > 上左) a[--x][y] = ++num; else 向 = 0; } else { if (正 ? y < 下右 : y > 上左) 正 ? a[x][++y] = ++num : a[x][--y] = ++num; else if (x < 下右) a[++x][y] = ++num; else ++下右, --上左, 向 = 1; } } x = y = 0; while (a[x][0]) { if (a[x][y]) cout << (a[x][y]<10 ? " " : a[x][y]<100 ? " " : a[x][y]<1000 ? " " : "") << a[x][y++] << " "; else ++x, y = 0, cout << endl; } } 蛇形矩阵(); 蛇形矩阵(false);
原创文章,作者:xianfajushi的博客,如若转载,请注明出处:https://www.zengqueling.com/c-%e8%9b%87%e5%bd%a2%e7%9f%a9%e9%98%b5-%e8%9b%87%e5%bd%a2%e7%9f%a9%e9%98%b5false/