南阳33

本文介绍了一个使用C语言实现的螺旋矩阵生成算法。该算法能够根据输入的正整数n生成一个n×n的螺旋填充矩阵,并按行打印出这个矩阵。通过循环控制四个方向的填充过程,最终实现了矩阵的螺旋填充。
 1  #include<stdio.h>
 2 #include<string.h>
 3 int a[105][105];
 4 int main()
 5 {
 6     int n,i,j,t;
 7     while(~scanf("%d",&n))
 8     {
 9         memset(a,0,sizeof a);
10         t=a[i=0][j=n-1]=1;
11         while(t<n*n)
12         {
13             while(i+1<n  && !a[i+1][j]) a[++i][j]=++t;
14             while(j-1>=0 && !a[i][j-1]) a[i][--j]=++t;
15             while(i-1>=0 && !a[i-1][j]) a[--i][j]=++t;
16             while(j+1<n  && !a[i][j+1]) a[i][++j]=++t;
17         }
18         for(i=0; i<n; ++i)
19         {
20             for(j=0; j<n; ++j)
21                 if(j)
22                     printf(" %d",a[i][j]);
23                 else
24                     printf("%d",a[i][j]);
25             printf("\n");
26         }
27     }
28 }
29         

 

转载于:https://www.cnblogs.com/qq188380780/p/6219723.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值