二维数组回形遍历
http://noi.openjudge.cn/ch0108/23/
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示:
输入输入的第一行上有两个整数,依次为row和col。
余下有row行,每行包含col个整数,构成一个二维整数数组。
(注:输入的row和col保证0 < row < 100, 0 < col < 100)输出按遍历顺序输出每个整数。每个整数占一行。样例输入
4 4 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
样例输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
代码如下:
1 #include <stdio.h> 2 #define maxN 101 3 int main(int argc, char *argv[]) 4 { 5 int row,col,i,j,k; 6 int a[maxN][maxN]; 7 int count; 8 9 scanf("%d%d",&row,&col); 10 for(i=0;i<row;i++) 11 { 12 for(j=0;j<col;j++) 13 { 14 scanf("%d",&a[i][j]); 15 } 16 } 17 18 if(row==1)//只有一行 19 { 20 i=0;j=0; 21 for(k=1;k<=col;k++) 22 { printf("%d\n",a[i][j]);j++;} 23 } 24 else if(col==1)//只有一列 25 { 26 i=0;j=0; 27 for(k=1;k<=row;k++) 28 { printf("%d\n",a[i][j]);i++;} 29 } 30 else 31 { 32 i=0;j=0; 33 count=row*col; 34 while(count>0) 35 { 36 for(k=1;k<col;k++) 37 { count--; printf("%d\n",a[i][j]);j++;} //输出一个环的上面那一条边 38 39 for(k=1;k<row;k++) 40 { count--; printf("%d\n",a[i][j]);i++;} //输出一个环的右侧那一条边 41 42 for(k=1;k<col;k++) 43 { count--; printf("%d\n",a[i][j]);j--;} //输出一个环的下面那一条边 44 45 for(k=1;k<row;k++) 46 { count--; printf("%d\n",a[i][j]);i--;} //输出一个环的左侧那一条边 47 48 i++; 49 j++; 50 row-=2; 51 col-=2; 52 if(row==1)//只剩下一行 53 { 54 for(k=1;k<=col;k++) 55 { count--; printf("%d\n",a[i][j]);j++;} 56 } 57 else if(col==1)//只剩下一列 58 { 59 for(k=1;k<=row;k++) 60 { count--; printf("%d\n",a[i][j]);i++;} 61 } 62 } 63 } 64 return 0; 65 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App