![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二维数组
凌空的桨
https://github.com/marsmarcin/
展开
-
数组6——二维数组4——打印螺旋矩阵
打印一个螺旋矩阵。例如,一个5×5的螺旋矩阵如图【分析】通过观察,发现一个n×n的螺旋矩阵可以分为(n+1)/2圈,可以使用一个循环控制圈数。每圈的元素可以分为上、右、下、左4个方向,在内层循环中可以使用4个循环控制每圈的四个方向的元素输出。其中:△上:行号不变,列号依次增1;△右:行号依次增1,列号不变;△下:行号不变,列号依次减1;△左:行号依次减1,列号不变。mai...原创 2018-12-12 20:56:10 · 1510 阅读 · 0 评论 -
数组7——二维数组5——打印拉丁方阵
打印拉丁方阵。N×N的拉丁方阵的每一行,每一列均为自然数1,2,3,... ,N的全排列,每一行和每一列均无重复数字。一个5×5的拉丁方阵如图所示【分析】生成拉丁方阵的方法如下:(1)第一行元素由随机数产生,从1开始,依次将自然数1--N填充到第一行,填入的列号由随机数产生。(2)以第一行作为方阵的索引,即如果第一行的第i个元素值为j,则a[0][j]在各行中的列号是在第一行...原创 2018-12-13 20:05:30 · 1666 阅读 · 0 评论 -
数组8——二维数组6——打印蛇形方阵
打印蛇形方阵,将自然数1,2,··· ,N的平方按照蛇形方式依次存入N×N矩阵中。例如,N=5时的蛇形方阵如图所示。【分析】这是南京航空航天大学的考研试题。从a11开始到ann为止,依次填入自然数,交替对每一斜行从左上元素到右下元素或者从右下元素到左上元素填数。通过观察,发现蛇形矩阵有以下特点:对于每一斜行的元素来说:(1)对于奇数的斜行来说,下一个数的行号比上一个数的行号增1...原创 2018-12-14 18:27:40 · 1985 阅读 · 1 评论 -
数组10——数组的压缩存储2——上三角阵的压缩存储
编写一个算法,将一个以行为主序存储的一维数组转换为以列为主序压缩存储的一维数组。例如,设有n×n的上三角矩阵A的上三角元素已按行为主序连续存放在数组b中,请设计一个算法Trans将b中元素按列为主序存放在数组c中。当n=5时,矩阵A如图所示:其中b=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),c=(1,2,6,3,7,10,4,8,11,13,5,...原创 2018-12-16 20:37:40 · 6777 阅读 · 0 评论 -
数组4——二维数组1——将矩阵顺时针旋转90度
【定义】二维数组也称为矩阵(Matrix),关于矩阵的算法经常在各种考试及面试中出现,它主要考查被测试者的逻辑思维能力、下标的灵活应用及对C语言的掌握程度,这种题目通常有较高的难度,通常需要二重循环实现。经典的矩阵算法有将矩阵旋转90度、魔方阵、拉丁方阵、蛇形方阵、内螺旋矩阵、外螺旋矩阵、逆螺旋矩阵。【问题】将矩阵顺时针旋转90度如图【分析】这题是北京航天大学考研试题。对于...原创 2018-12-10 21:27:40 · 10845 阅读 · 4 评论 -
数组5——二维数组3——打印魔方阵
3阶的魔方阵在四千年前中国科学家就知道了,河图正是一个3阶魔方阵的例子。打印魔方阵。魔方阵,又称“纵横图”,是指组成元素为自然数1,2,... ,n^2的n×n的方阵,其中每个元素值都不相等,且每行,每列及主、副对角线上元素之和都相等。例如,3×3的魔方阵如图【分析】构造魔方阵的方法如下:(1)将1放在第一行中间一列;(2)从2开始直到n×n为止各数依次按照下列规则存放:每一...原创 2018-12-11 22:00:37 · 1189 阅读 · 0 评论 -
数组12——稀疏矩阵的压缩存储2——稀疏矩阵的相加
设有两个4*4的稀疏矩阵A和B,相加得到C,如图所示,请编写算法,要求利用三元组表示法实现两个稀疏矩阵的相加,并用矩阵形式输出结果。 【分析】先比较两个稀疏矩阵的 先比较两个稀疏矩阵A和B的行号,如果行号相等,则比较列号;如果行号与列号都相等,则将对应的元素值相加,并将下标m与n下标都加1比较下一个元素;如果行号相等,列号不相等,则将列号较小的矩阵的元素赋给矩...原创 2018-12-18 21:12:13 · 1040 阅读 · 0 评论