旋转矩阵

顺时针N(n<=10)阶旋转矩阵

#include<stdio.h>

#define N 10

void main()
{
	int a[N][N];
	//left, up, right, down为矩阵限制行和列
	int left, up, right, down, n, t;
	puts("input n:\n");
	scanf("%d", &n);

	if (n > 10)
	{
		puts("error n");
		return;
	}

	left = up = t = 1;
	right = down = n;

	
	while(down >= up && right >= left)
	{
		//从左向右
		for (int iTemp = left; iTemp <= right; iTemp++)
		{
			a[up-1][iTemp-1] = t++;
		}
		up++;

		//从上到下
		for (int iTemp = up; iTemp <= down; iTemp++)
		{
			a[iTemp-1][right-1] = t++;
		}
		right--;

		//从右到左
		for (int iTemp = right; iTemp >= left; iTemp--)
		{
			a[down-1][iTemp-1] = t++;
		}
		down--;

		//从下到上
		for (int iTemp = down; iTemp >= up; iTemp--)
		{
			a[iTemp-1][left-1] = t++;
		}
		left++;
	}

	for (int iRow = 0; iRow < n; iRow++)
	{
		for (int iColumn = 0; iColumn < n; iColumn++)
		{
			printf("%d\t",a[iRow][iColumn]);
		}
		puts("\n");
	}
} 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值