系统相关
首页 > 系统相关> > 蛇形填充数组 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 用数字1,2,3,4,...,n*n这n2个数蛇形填充规模为n*n的方阵。 蛇形填充方法为: 对

蛇形填充数组 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 用数字1,2,3,4,...,n*n这n2个数蛇形填充规模为n*n的方阵。 蛇形填充方法为: 对

作者:互联网

#include
using namespace std;
int main()
{
int n, a[10][10], t = 1;//t从1开始,用t++填充数组。
int k, i;
cin >> n;//输入正方形二维数组的边长
for (k = 0; k < n; k++)//在左上区域的一半图形中,横纵坐标之和等于k,不同方向表现为交换横纵下标。
{
if (k % 2 != 0)//下标从0开始数的,所以此处k表示从左上角往右和下两个正交方向第偶数个位置的某个单方向下标。
for (i=0; i<=k; i++)
a[i][k-i] = t++;
else for (i = 0; i <=k;i++)//k为第奇数个位置的某个单方向下标
a[k-i][i] = t++;
}
for (k = n; k < 2 * n - 1; k++)//在右下区域的一半图形中,观察变量变动规律总结横纵坐标关系。方向的思路一样
{
if (k % 2 != 0)
for (i = k - n + 1; i < n; i++)
a[i][k-i] = t++;
else for (i = k - n + 1; i < n; i++)
a[k-i][i] = t++;
}
for (i = 0; i < n; i++)
{
for (k = 0; k < n; k++)
cout << a[i][k] << ’ ';//遍历元素
cout << endl;
}

return 0;

标签:1000ms,下标,填充,++,int,蛇形,数组
来源: https://blog.csdn.net/qq_51385392/article/details/111621337