可以通过分析下标的特征来设计程序的算法
输出结果如图
写入数组时,也是按数组的螺旋顺序写的,关键在于理清数组下标的关系~
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
//逆时针输出螺旋数组
int main()
{
int n, a[10][10];
int i, j, round;
int m;
cin>> n;
m = 1; round = 1; //定义初始值m=1
for (i = 0; i < n; i++)
a[i][0] = m++; //赋值第一列
for (j = n - 1; j >= n / 2; j--) //多次循环,得到矩阵数组的所有值
{
for (i = round; i <= j; i++)
a[j][i] = m++; //赋值第j+1行(第一次循环为最后一行)
for (i = j; i >= round; i--)
a[i - 1][j] = m++;//赋值第j+1列(第一次循环为最后一列)
for (i = j; i > round; i--)
a[round - 1][i - 1] = m++;//赋值round行,(第一次循环为第一行)
for (i = round; i < j; i++)
a[i][round] = m++;//赋值round+1列(第一次循环为第二列)
round++;//round加1,依次按照以上顺序对矩阵内部进行赋值
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%4d", a[i][j]);//打印矩阵
}
cout << endl; //每行换行
}
cout << endl; //打印完整个矩阵换行
system("pause");
return EXIT_SUCCESS;
}
日期:
2019/4/20
版权声明:本文为weixin_44879611原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。