tanqin1 2022-01-05 20:52 采纳率: 100%
浏览 120
已结题

求个C语言螺旋填数思路

螺旋填数

题目描述:
创建一个m行n列的数组,将1—m*n的数字螺旋填入
方向为右下左上

输入说明:
输入正整数m和n,以空格分隔

输出说明:
输出填好的数组,数组元素之间用空格分隔,数组每行之间以换行分隔

输入示例:
4 5

输出示例:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8

  • 写回答

2条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2022-01-05 21:16
    关注
    #include<stdio.h>  
    int main()
    {  
        int m,n,x=0,y=0,c=1;
        scanf("%d %d",&m,&n); 
        int a[m+1][n+1]={0};
        a[x][y]=1;
        while(c!=m*n){   
            while(y+1<n&&!a[x][y+1]) a[x][++y]=++c;
            while(x+1<m&&!a[x+1][y]) a[++x][y]=++c;
            while(y-1>=0&&!a[x][y-1]) a[x][--y]=++c;
            while(x-1>=0&&!a[x-1][y]) a[--x][y]=++c;    
        }
        for(x=0;x<m;x++){
            for(y=0;y<n;y++)
                   printf("%3d", a[x][y]);
               printf("\n");
        }
    }
    

    test1:
    4 5
    1 2 3 4 5
    14 15 16 17 6
    13 20 19 18 7
    12 11 10 9 8
    test2:
    6 4
    1 2 3 4
    16 17 18 5
    15 24 19 6
    14 23 20 7
    13 22 21 8
    12 11 10 9

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 专家已采纳回答 1月8日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?