码迷,mamicode.com
首页 > 其他好文 > 详细

编程算法 - 旋转矩阵 代码(C)

时间:2014-09-17 12:13:02      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:mystra   编程算法   旋转矩阵   对角线上升   c++   

旋转矩阵 代码(C)


本文地址: http://blog.csdn.net/caroline_wendy


输出旋转矩阵, 使矩阵是按对角线螺旋上升, 在输出规则确定以后, 就可以判断, 上升规律是, 行列相加为定值.

所以采用两次循环的方法, 并且上下矩阵, 分开输出.

如:

  1   2   6   7  15
  3   5   8  14  16
  4   9  13  17  22
 10  12  18  21  23
 11  19  20  24  25

代码:

/*
 * main.cpp
 *
 *  Created on: 2014.6.12
 *      Author: Spike
 */

/*eclipse cdt, gcc 4.8.1*/

#include <stdio.h>

void output(int n)
{
	if (n < 0) return;

	const int MAX = 100;
	int a[MAX][MAX];

	int min = 1;
	int max = n*n;

	//上半个矩阵
	for (int i=0; i<n; i++) {
		for (int j=0; j<i+1; j++)
			if (i % 2 == 0) {
				a[i-j][j] = min++;
				a[n-1-i+j][n-1-j] = max--;
			} else {
				a[j][i-j] = min++;
				a[n-1-j][n-1-i+j] = max--;
			}
	}

	for (int i=0; i<n; i++) {
		for (int j=0; j<n; j++)
			printf("%3d%c", a[i][j], j == n - 1 ? ‘\n‘ : ‘ ‘);
	}

}

int main()
{
	output(5);
	return 0;
}


输出:

  1   2   6   7  15
  3   5   8  14  16
  4   9  13  17  22
 10  12  18  21  23
 11  19  20  24  25



bubuko.com,布布扣

编程算法 - 旋转矩阵 代码(C)

标签:mystra   编程算法   旋转矩阵   对角线上升   c++   

原文地址:http://blog.csdn.net/caroline_wendy/article/details/39338935

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!