输出“魔方阵“

简介: 输出“魔方阵“

输出"魔方阵"。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。

#include<stdio.h>
int main()
{
  int a[15][15], i, j, k,n=0;
  //校验输入的是不是偶数或者是不是超过了15
  while ((n % 2 == 0) || (n > 15) || (n==0))
  {
    printf("输入n的值,不能是偶数,不能超过15:");
    scanf("%d", &n);
  }
  //将数组用0初始化
  for (i = 1; i <= n; i++)
    for (j = 1; j <= n; j++)
      a[i][j] = 0;
  //建立魔方阵
  i = 1; j = (n+1) / 2;
  a[i][j] = 1;
  //i表行,j表列
  for (k = 2; k <= n * n; k++)
  {
    i = i - 1;      //行减1 列加1
    j = j + 1;
    //特殊情况
    if ((i < 1) && (j > n))
    {
      i = i + 2;    //第1行第n列的元素之后的数
      j = j - 1;
    }
    else
    {
      if (i < 1)//单个行或列超出
        i = n;
      if (j > n)
        j = 1;
    }
    if (a[i][j] == 0)
      a[i][j] = k;
    else
    {
      i = i + 2;//位上有数
      j = j - 1;
      a[i][j] = k;
    }
  }
  //输出
  for (i = 1; i <= n; i++)
  {
    for (j = 1; j <= n; j++)
      printf("%5d", a[i][j]);
    printf("\n");
  }
  return 0;
}
相关文章
|
5月前
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
104 7
|
机器学习/深度学习 传感器 算法
区间预测 | Matlab Lasso分位数时间序列区间预测 可直接运行 可作为创新点
区间预测 | Matlab Lasso分位数时间序列区间预测 可直接运行 可作为创新点
|
算法
精选算法题(2)——矩阵螺旋输出
精选算法题(2)——矩阵螺旋输出
蓝桥杯国赛 矩阵计数(python-状压DP)
蓝桥杯国赛 矩阵计数(python-状压DP)
蓝桥杯国赛 矩阵计数(python-状压DP)
|
机器学习/深度学习 C语言 数据格式
打印魔方阵(C语言) 所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
打印魔方阵(C语言) 所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
189 0
洛谷P1067-多项式输出(模拟好题!)
洛谷P1067-多项式输出(模拟好题!)
|
机器学习/深度学习
洛谷【4】P1035 [NOIP2002 普及组] 级数求和
洛谷【4】P1035 [NOIP2002 普及组] 级数求和
洛谷【4】P1035 [NOIP2002 普及组] 级数求和
|
机器学习/深度学习 人工智能 算法
[解题报告]《算法零基础100讲》(第3讲) 矩阵(1)
[解题报告]《算法零基础100讲》(第3讲) 矩阵(1)
[解题报告]《算法零基础100讲》(第3讲) 矩阵(1)