文章
18
粉丝
0
获赞
100
访问
3.2k
思路:按照左列 下行 右列 上行的循序依次赋值,
这里我们4个4个赋值,就刚好不重叠的铺满一围(其他n时候同理最外围每次赋值n-1).
int n = 0;//输入的整数n
int count=1;//赋值的数,从1开始++到n*n
int a[21][21]={0};//二维数组来模拟矩阵
scanf("%d",&n);
for(int i=0;i<(n+1)/2;i++)//总的层数
{
if(count==n*n)//n如果是奇数的时候最中间的数一定是n*n,所以直接判断如果赋值的数是n*n直接赋值给a[i][i]。如果是偶数就不会触发,因为偶数的时候上行赋值完结束了,不会 再进入循环,奇数的循环次数比偶数多一次
{
a[i][i]=count;
break;
}
for(int j=i;j<n-i-1;j++)//左列赋值
{
a[j][i]=count++;
&...
登录后发布评论
暂无评论,来抢沙发