02:螺旋矩阵

02:螺旋矩阵

时间限制: 
1500ms
  内存限制: 
1000kB
描述
生成一个NxN(N>0)的旋转矩阵,N从键盘输入,每4个字符输出一个数字,右对齐,从1开始至NxN,顺时针成螺旋状,例如:输入4则生成1--16的矩阵.
输入
5 (N)
输出
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
(由于排版有问题,详看样例)

源码(OpenJudge通过)
#include <stdio.h>
#include <stdlib.h>


int luoxuan(int **a ,int k,int row ,int col, int n)
{
int i;

for(i=row;i<n;i++,k++)
a[row][i]=k;
for(i=col+1;i<n;i++,k++)
a[i][n-1]=k;
for(i=n-2;i>=col;i--,k++)
a[n-1][i]=k;
for(i=n-2;i>row;i--,k++)
a[i][col]=k;
return k;



int main ()
{
int i,r,c,k,m,n;
scanf("%d",&n);
int **a=(int**)malloc(sizeof(int*)*n);
for(i=0;i<n;i++)
a[i]=(int*)malloc(sizeof(int)*n);
k=1;
r=0;
c=0;
m=n;
while(m>n/2)
{
k=luoxuan(a,k,r,c,m);
r++;
c++;
m--;
}

for(i=0;i<n;i++)
{
for(k=0;k<n;k++)
printf("M",a[i][k]);
printf("\n");
}
    return 0;
}

结果截图
02:螺旋矩阵
02:螺旋矩阵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值