输出“魔方阵“

简介: 输出“魔方阵“

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

#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;
}
相关文章
|
22天前
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
29 7
|
22天前
线性代数——(期末突击)行列式(下)-行列式按行展开、范德蒙行列式、克拉默法则
线性代数——(期末突击)行列式(下)-行列式按行展开、范德蒙行列式、克拉默法则
35 7
|
1月前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
|
8月前
|
算法
精选算法题(2)——矩阵螺旋输出
精选算法题(2)——矩阵螺旋输出
|
9月前
[NOIP2009]多项式输出
[NOIP2009]多项式输出
|
9月前
洛谷P1067多项式输出
洛谷P1067多项式输出
|
机器学习/深度学习 C语言 数据格式
打印魔方阵(C语言) 所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
打印魔方阵(C语言) 所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
155 0
|
机器学习/深度学习 人工智能 算法
[解题报告]《算法零基础100讲》(第3讲) 矩阵(1)
[解题报告]《算法零基础100讲》(第3讲) 矩阵(1)
[解题报告]《算法零基础100讲》(第3讲) 矩阵(1)
|
C语言
浙大版《C语言程序设计(第3版)》题目集 - 习题9-3 平面向量加法(15 分)
浙大版《C语言程序设计(第3版)》题目集 - 习题9-3 平面向量加法(15 分)
112 0