c语言编程螺旋矩阵

编程打印如图所示的n×n的方阵。
c语言编程螺旋矩阵
如图为顺时针螺旋:
算法思想:先把图形分成几个圈,及“1~12”为第一圈,“13~16”为第二圈;并定义下标变量是i,由于n与圈数的关系,(例如n=3、4均为两圈),所以下标变量范围1~(n+1)/2。
(1)i行,从i列到n-i列 (n=4,i=1时“摆放1,2,3”) 上方
(2)n+1-i列,从i行到n-i行 (n=4,i=1时“摆放4,5,6”) 右侧
(3)n+1-i行,从n+1-i行到i+1列(n=4,i=1时“摆放7,8,9”)下方
(4)i列,从n+1-i行到i+1行 (n=4,i=1时“摆放10,11,12”)左侧
程序如下:

#include<stdio.h>
void main()
{
    int i,j,a[100][100],n,k;
    printf("输入n的值:");
    scanf("%d",&n);
    k=1;
    for(i=1;i<=n/2;i=i+1)
    {
        for(j=i;j<=n-i;j=j+1)    //上方   
        {
            a[i][j]=k;
            k=k+1;
        }
        for(j=i;j<=n-i;j=j+1)    //右侧
        {
            a[j][n-i+1]=k;
            k=k+1;
        }
        for(j=n-i+1;j>=i+1;j=j-1)    //下方
        {
            a[n-i+1][j]=k;
            k=k+1;
        }
        for(j=n-i+1;j>=i+1;j=j-1)    //左侧
        {
            a[j][i]=k;
            k=k+1;
        }
    }
    if(n%2==1)
    {
        i=(n+1)/2;
        a[i][i]=n*n;
    }
    for(i=1;i<=n;i=i+1)
    {
        for(j=1;j<=n;j=j+1)
            printf("%4d",a[i][j]);
        printf("\n");
    }
    printf("\n");
}

若想要做一个逆时针的螺旋矩阵,只需要改改逻辑值就好了
每一次的编程都是自己的收获,珍惜~~~

转载于:https://blog.51cto.com/14233078/2361961

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值