本文主要是介绍逆时针螺旋数组的算法(C/C++),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
可以通过分析下标的特征来设计程序的算法
输出结果如图
写入数组时,也是按数组的螺旋顺序写的,关键在于理清数组下标的关系~
代码如下:
#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=1for (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
这篇关于逆时针螺旋数组的算法(C/C++)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!