当前位置:   article > 正文

1130. 【二维数组】打印螺旋矩阵

1130. 【二维数组】打印螺旋矩阵
题目描述

打印n行的以下图形,n由键盘输入,例如n=5时:
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 

输入

输入n,表示n行

输出

输出符合规律的n行矩阵

样例输入 复制
5
样例输出 复制
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 

傻子都会做。

while循环不断向内赋值就行了。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int n,t=1,i=0,j;
  6. cin>>n;
  7. int a[n+2][n+2]={};
  8. j=i;
  9. a[0][j]=1;
  10. while(t<n*n)
  11. {
  12. while(!a[i][j+1]&&j+1<n)
  13. {
  14. a[i][++j]=++t;
  15. }
  16. while(!a[i+1][j]&&i+1<n)
  17. {
  18. a[++i][j]=++t;
  19. }
  20. while(!a[i][j-1]&&j-1>=0)
  21. {
  22. a[i][--j]=++t;
  23. }
  24. while(!a[i-1][j]&&i-1>=0)
  25. {
  26. a[--i][j]=++t;
  27. }
  28. }
  29. for(i=0;i<n;i++)
  30. {
  31. for(j=0;j<n;j++)
  32. {
  33. cout<<a[i][j]<<" ";
  34. }
  35. cout<<endl;
  36. }
  37. return 0;
  38. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/710530
推荐阅读
相关标签
  

闽ICP备14008679号