NでNのらせん配列を作ります

名前は、最後の桁まで小から大時計回りにらせん状アレイの回転アレイ、アレイサイズであることを示唆しています。
例えば、5×5アレイコイルは、以下のように、
ここに画像を挿入説明
実際には、上記の例からわかるように、法律、左から右へデジタル増加、右アレイは、最終的に、その後上から下へ増分だけインクリメントされたときに端部の最後にインクリメントするとき時間は、増加して右から左へ、左にインクリメントするとき、ボトムアップおよびからアレイの最後のビットがインクリメントされ、連続する増分配列マイナス1。そのようなグラフィックの繰り返しサイクルの後、図に描かれています。

コードは以下の通りです

#include "pch.h"
#include <iostream>

#define  N  10 //为宏定义命令确保矩形数组的最大值

using namespace std;
void main()
{
int n;
	cout << "请输入一个你想要的N乘N矩形数组,矩形数组不能大于10*10规模" << endl;
	cin >> n;
//此处要做个判断,判断输入的值时候在1到10之间的值
if (n >= 10&&n<0) {
		cout << "请输入1-10范围内的数字" << endl;
	}
	else
	{
		int i, j, k, s;
		int a[N][N];
		k = 1, s = 0, i = 0;

		while (k <= (n * n)) {//判断K值不大于n*n的值
			for (j = s; j < n - s; j++) {//此处从左往右的值
				a[i][j] = k++;
			}
			j--;

			for (i = s + 1; i < n - s; i++) {//此处从上往下的值
				a[i][j] = k++;

			}
			i--;

			for (j = n - s - 2; j >= s; j--) {//此处从右往左的值
				a[i][j] = k++;

			}
			j++;

			for (i = n - s - 2; i >= s + 1; i--) {//此处从下往上的值
				a[i][j] = k++;

			}

			i++;
			s++;
		}

		for (i = 0; i < n; i++) {
			for (j = 0; j < n; j++) {
				cout << a[i][j] << ends;//将整个数组显示出来
				if (a[i][j] < 10) {
				   cout << ends;//判断数组小于10的时候添加一位空格,显示时更美观些
				}
			}
			cout << endl;
		}
	}
}

結果は以下の通りであります
ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/qq_39686486/article/details/89962770