《2022年C语言的螺旋数组 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言的螺旋数组 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、螺旋数组专业:09通信工程班级:2班姓名: 王忠怀学号:20090210420221所谓螺旋数组,就是指向像1 2 3 4 5 6 7 8 9 10 36 37 38 39 40 41 42 43 44 11 35 64 65 66 67 68 69 70 45 12 34 63 84 85 86 87 88 71 46 13 33 62 83 96 91 98 89 72 47 14 32 61 82 95 100 99 90 73 48 15 31 60 81 94 93 92 91 74 49 16 30 59 80 79 78 77 76 75 50 17 29 58 57 56 55
2、 54 53 52 51 18 28 27 26 25 24 23 22 21 20 19 这样的数组 . 这是一个 10 阶的螺旋数组。那么如何使用c 语言来实现这样的螺旋数组的输出呢?分析方法如下:一算法分析:以 3 阶为例:1 2 3 8 9 4 7 6 5 转化成数组就是:a00 a01 a02 a10 a11 a12 a20 a21 a22 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 看一下规律:1. a00 a0
3、1 a02 2. a12 a22 3. a21 a20 4. a10 5. a11 第 1 步是()写的,就是一个循环写完第 2 步是()写的,列号 (2) 是跟第 1 步的最后一个数 a02 的列号相同第 3 步是()写的,行号 (2) 是跟第 2 步的最后一个数 a22 的行号相同第 4 步是()写的,列号 (0) 是跟第 3 步的最后一个数 a20 的列号相同到此一个大循环结束。从第 5 步开始,就重复以上循环二. 算法设计:对于 1、2 阶的矩阵,大循环1 次对于 3、4 阶的矩阵,大循环2 次所以 n、n+1 阶矩阵,大循环的次数应该是( n + 1 )/2 也可以这样理解 :第 1
4、 个子循环:就像普通的循环就可以了第 2 个子循环:记下最后的列号,行号依次加1 第 3 个子循环,记下最后的行号,列号依次减1 第 4 个子循环,记下最的的列号,行号依次减1 三程序实现程序代码为:#include / 宏定义,定义螺旋矩阵的阶数,要想改变数组的阶数,只需在改变N 的值即可#define N main() int n,i,j,m=1; int aNN=0;/定义螺旋数组,并初始化/ 螺旋数组的实现for(n=0;n=N/2;n+) for(j=n;jN-n;j+) anj=m+; for(i=n+1;i=n;j-) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - aN-n-1j=m+; for(i=N-n-2;in;i-) ain=m+; / 输出螺旋数组for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); 运行的结果为:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -