螺旋矩阵

用个二维数组做了个螺旋矩阵,
	#include<iostream>
	#include <iomanip>
	using namespace std;
	void main{
		int a[5][5];//一个五行五列的二维数组
		int length = 4;
		int num = 1;//螺旋矩阵的起始值
		int b = 0;
		int i = 0;
		int j = 0;	
		for (int p = 0; p < 2; p++)//循环次数
		{
			for (; j < length; j++)//从左往右,第一圈[0][0]——[0][3]
			{
				a[i][j] = num++;
			}
			for (; i < length; i++)//从上往下,第一圈[0][4]——[3][4]
			{
				a[i][j] = num++;
			}
			for (; j > b; j--)//从左往右,第一圈[4][4]——[4][1]
			{
				a[i][j] = num++;
			}
			for (; i > b; i--)//从下往上,第一圈[4][0]——[1][0]
			{
				a[i][j] = num++;
			}
			i++;
			j++;
			b++;
			length--;		
			}
		a[i][j] = num++;//这个时最中间的那个数的值,也就是[2][2],
		for (i = 0; i < 5; i++)//把数组的值都遍历出来
		{
			for (j = 0; j < 5; j++)
			{
				cout << setw(2) << a[i][j] << ends;
			}
			cout << endl;
		}
	}

在这里插入图片描述
这个二维数组呢,我们让它循环两次,第一圈上右下左上以四个值为一个for循环,第二圈以两个值来做一个for循环,所以说循环两次就可以啦,这样的话,就差中间那个[2][2]是没有值的啦,所以要我们要单独给它,螺旋起始值为1,每次循环这个值都会加一,一直到结束,就可以得到一下结果啦。
在这里插入图片描述

还有的就是呢,我这个只能做个五行五列的螺旋矩阵,这个是可以完善下弄成个n*n的螺旋矩阵的

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值