`
hzy3774
  • 浏览: 992382 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

算法:螺旋输出矩阵

 
阅读更多

赶集网校招一个程序题,要求将矩阵螺旋输出如:

 

图中6*6矩阵线条所示为输出顺序,如果输出正确的话应该输出1~36有序数字
 我当时是这么做的:

#include <stdio.h>

//#define LEN 1
//#define LEN 2
//#define LEN 3
#define LEN 4

void printClock(int a[][LEN]){//输出函数
	int t;
	int i = 0, m = 0;
	int j = LEN, n = LEN;
	while (i <= j || m <= n)
	{
		for (t = i; t < j; t++)//输出第m行
		{
			printf("%d ", a[m][t]);
		}
		m++;
		for (t = m; t < n; t++)//输出第j列
		{
			printf("%d ", a[t][j - 1]);
		}
		j--;
		for (t = j - 1; t >= i; t--)//输出第n行
		{
			printf("%d ", a[n - 1][t]);
		}
		n--;
		for (t = n - 1; t >= m; t--)//输出第i列
		{
			printf("%d ", a[t][i]);
		}
		i++;
	}
	printf("\n");
}

void main(){
	int a[][1] = {1};
	int b[][2] = {1,2,
				  4,3
	};
	int c[][3] = {1,2,3,
				  8,9,4,
				  7,6,5
	};
	int d[][4] = {1,2, 3, 4,
				 12,13,14,5,
				 11,16,15,6,
				 10, 9, 8,7
	};
	int e[][6] = {   1, 2, 3, 4, 5, 6,
				    20,21,22,23,24, 7,
					19,32,33,34,25, 8,
					18,31,36,35,26, 9,
					17,30,29,28,27,10,
					16,15,14,13,12,11
	};
	printClock(d);
}

 分别做向右输出,向下输出,向左输出,向上输出,然后就进入一种循环,直到输出结束



 

 

  • 大小: 94.1 KB
  • 大小: 11 KB
分享到:
评论

相关推荐

    螺旋阵,请设计算法完成螺旋阵的输出,具有要求为:输入一个m行n列的矩阵,按顺时针螺旋顺序输出矩阵中的所有元素

    请设计算法完成螺旋阵的输出,具有要求为:输入一个m行n列的矩阵,按顺时针螺旋顺序输出矩阵中的所有元素。 【输入】 第1行输入两个正整数m和n,表示m行n列的矩阵; 从第2行开始按行输入该矩阵的所有元素。 【输出】...

    java 螺旋输出矩阵代码

    例如对于一个3×3的矩阵: ``` 1 2 3 8 9 4 7 6 5 ``` 按照螺旋顺序输出的结果应该是:`1 2 3 4 5 6 7 8 9`。 理解这个题目时需要注意以下几点: 1. **输入**:用户需要提供一个整数N,表示矩阵的行数和列数。 2. *...

    内螺旋矩阵算法

    内螺旋矩阵算法是一种在二维数组中填充数字的特殊方式,其特点是数字按顺时针方向从数组中心向外螺旋式地填充。这种填充模式在数据结构和算法的学习中颇为有趣,因为它涉及到了数组的操作以及对角线元素的处理。在...

    C++ 输出螺旋数字矩阵

    螺旋矩阵,也称为螺旋阵列,是将一个二维数组按照螺旋路径填充数字的一种方式。这种矩阵的填充规则是从左上角开始,向右填充一行,然后向下填充一列,接着向左填充一行,再向上填充一列,如此反复,直到所有位置都被...

    螺旋矩阵源码_VB.NET

    在VB.NET编程环境中,实现螺旋矩阵可以帮助开发者理解和掌握数组操作、循环控制以及基本算法设计。以下是关于螺旋矩阵及其在VB.NET中实现的相关知识点: 1. **螺旋矩阵的基本概念**: 螺旋矩阵,也被称为螺旋阵列...

    螺旋矩阵算法

    矩阵算法题。这道题主要是类似螺旋的数字排列,从外层1旋转到最中间。 让你更加了解二维数组和矩阵的相关的应用。这里主要是一个逻辑,转过弯就容易了。想了我1天呀。很值得, 很难得,分享给大家,希望对学C的同学...

    算法实例之一--螺旋矩阵VB程序

    在给定的VB代码片段中,可以看出它尝试实现一个生成螺旋矩阵的算法。虽然代码不完整,但可以大致理解其逻辑框架。这里提供一个较为完整的螺旋矩阵生成算法的VB实现示例: ```vb Option Explicit Private Sub ...

    C语言算法 螺旋矩阵

    打印输出螺旋矩阵,要求螺旋矩阵的阶数由用户输入

    c语言程序设计 螺旋矩阵

    螺旋矩阵是一种特殊的矩阵排列方式,它在编程中常被用作练习数据结构和算法的问题。在C语言程序设计中,创建螺旋矩阵涉及到数组操作、循环控制以及条件判断等基本概念。接下来,我们将深入探讨这些知识点。 1. **...

    c++ 螺旋矩阵 算法实现 源代码 原创

    在C++中实现螺旋矩阵算法,可以分为以下几个关键步骤: 1. **初始化**: 创建一个二维数组,其大小根据矩阵的阶数确定。阶数可以是奇数或偶数,这将影响螺旋路径的方向。 2. **设定初始位置**: 对于奇数阶的矩阵,1...

    Java实现的打印螺旋矩阵算法示例

    主要介绍了Java实现的打印螺旋矩阵算法,结合完整实例形式详细分析了java打印螺旋矩阵的算法原理与实现技巧,需要的朋友可以参考下

    螺旋矩阵和折线矩阵算法

    螺旋矩阵和折线矩阵是两种在计算机科学中处理二维数组,特别是矩阵时常见的算法。它们在数据结构和算法设计中有着独特的应用,特别是在图形处理、矩阵运算和数据存储等方面。 **螺旋矩阵** 是一种将一个n×n的矩阵...

    螺旋矩阵递归算法实现

    螺旋矩阵是一种特殊的矩阵排列方式,它的特点是按照顺时针或者逆时针方向,从左上角开始,依次填充矩阵的元素。在编程面试中,螺旋矩阵的实现常常被用来考察候选人的逻辑思维和数据结构处理能力。在这个问题中,我们...

    螺旋矩阵matlab源程序

    1. 顺时针螺旋矩阵: 在C++程序中,顺时针螺旋矩阵的实现主要通过四个嵌套循环完成。首先,程序要求用户输入矩阵的阶数`N`,然后初始化一个`N×N`的二维数组`s`。接下来,四个嵌套循环按照以下顺序填充数字: - 第...

    螺旋矩阵VC6

    5. 输出矩阵:最后,将填充好的螺旋矩阵打印出来,以便用户查看结果。 在“正时针外螺旋矩阵奇偶”这个文件中,可能包含的是关于如何处理奇数和偶数大小的矩阵的特殊情况。对于奇数大小的矩阵,中心元素会在最后一...

    C语言解决螺旋矩阵算法问题的代码示例

    这个螺旋矩阵算法的关键在于理解元素是如何沿着四个方向移动的,以及如何有效地跟踪当前的行和列边界。在实际编程过程中,需要注意边界条件的处理,以防止越界访问数组。 此外,螺旋矩阵问题也可以扩展到其他情况,...

    3d算法:3D图象算法

    综上所述,三维坐标系统、矢量和矩阵的基本概念及其操作是理解和实现3D图像算法的基础。掌握这些基础知识后,可以进一步学习如何利用这些工具进行更复杂的3D图像处理任务,如光照模型、纹理映射等。

    螺旋矩阵代码和课程设计

    螺旋矩阵是一种特殊的矩阵排列方式,它从矩阵的左上角开始,沿着顺时针方向填入数字,当遇到边缘时,会转向下一个边界继续填充,直到所有元素都被填充完毕。在编程中,实现螺旋矩阵通常涉及到数组操作和循环控制。 ...

    螺旋输出二维数组

    这个算法的主要目的是按照顺时针或者逆时针的方向依次访问数组中的元素,形成一个螺旋状的输出。 在给定的代码中,可以看到一个简单的实现方式。这段代码首先定义了二维数组的初始坐标范围,包括开始的行坐标`...

Global site tag (gtag.js) - Google Analytics