1. /*
  2. 2(2N+1)魔方阵
  3. */
  4.  
  5. #include<stdio.h>
  6. #include<stdlib.h>
  7.  
  8. #define N 6
  9. #define SWAP(x, y) {int t; t = x; x = y; y = t;}
  10.  
  11. void magic_o(int [][N], int);
  12. void exchange(int [][N], int);
  13.  
  14. int main(void){
  15. int square[N][N] = {};
  16. int i, j;
  17. magic_o(square, N/);
  18. exchange(square, N);
  19.  
  20. for(i = ; i < N; i++){
  21. for( j = ; j < N; j++){
  22. printf("%2d ", square[i][j]);
  23. }
  24. putchar('\n');
  25. }
  26. return ;
  27. }
  28.  
  29. void magic_o(int square[][N], int n){
  30. int count, row, column;
  31. row = ;
  32. column = n /;
  33.  
  34. for(count = ; count <= n*n; count++){
  35. square[row][column] = count;
  36. square[row+n][column+n] = count + n*n;
  37. square[row][column+n] = count + *n*n;
  38. square[row+n][column] = count + *n*n;
  39. if(count % n == ){
  40. row++;
  41. }else{
  42. row = (row == ) ? n - : row - ;
  43. column = (column == n - ) ? : column + ;
  44. }
  45. }
  46. }
  47.  
  48. void exchange(int x[][N], int n){
  49. int i, j;
  50. int m = n / ;
  51. int m1 = m - ;
  52.  
  53. for(i = ; i < n/; i++){
  54. if(i != m){
  55. for(j = ; j < m; j++){
  56. SWAP(x[i][j], x[n/+i][j]);
  57. }
  58. for(j = ; j < m1; j++){
  59. SWAP(x[i][n--j], x[n/+i][n--j]);
  60. }
  61. }else{
  62. for(j = ; j <= m; j++){
  63. SWAP(x[m][j], x[n/+m][j]);
  64. }
  65. for(j = ; j <= m1; j++){
  66. SWAP(x[m][n--j], x[n/+m][n--j]);
  67. }
  68. }
  69. }
  70. }

运行结果:

【2(2N+1)魔方阵 】的更多相关文章

  1. 任意阶魔方阵(幻方)的算法及C语言实现

    写于2012.10: 本来这是谭浩强那本<C程序设计(第四版)>的一道课后习题,刚开始做得时候去网上找最优的算法,结果发现奇数和双偶数(4的倍数)的情况下算法都比较简单,但是单偶数(2的倍 ...

  2. 魔方阵算法及C语言实现

    1 魔方阵概念 填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5….魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是4 ...

  3. C语言——打印魔方阵(每一行,每一列,对角线之和相等)

    <一>魔方阵说明: 魔方阵是一个N*N的矩阵: 该矩阵每一行,每一列,对角线之和都相等: <二>魔方阵示例: 三阶魔方阵: 8   1   6 3   5   7 4   9 ...

  4. n阶魔方阵(奇数阵)的输出

    需求 要求输出1~n²的自然数构成的魔方阵. STEP 1 什么是魔方阵? 魔方阵,古代又称“纵横图”,是指组成元素为自然数1.2…n2的平方的n×n的方阵,其中每个元素值都不相等,且每行.每列以及主 ...

  5. 神奇的魔方阵--(MagicSquare)(1)

    本篇文章只对奇数阶以及偶数阶中阶数n = 4K的魔方阵进行讨论.下面就让我们进入正题: 1 :魔方阵的相关信息:(百度百科) https://baike.baidu.com/item/%E9%AD%9 ...

  6. 神奇的魔方阵--(MagicSquare)(2)

    在上一篇博客中,我们讨论了阶数为奇数,以及阶数为(4K)的魔方阵的排列规则,以及代码实现(详见:https://www.cnblogs.com/1651472192-wz/p/14640903.htm ...

  7. node操作MongoDB数据库之插入

    在上一篇中我们介绍了MongoDB的安装与配置,接下来的我们来看看在node中怎样操作MongoDB数据库. 在操作数据库之前,首先应该像关系型数据库一样建个数据库把... 启动数据库 利用命令提示符 ...

  8. c经典算法

    1. 河内之塔 说明 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时 北越的首都,即现在的胡志明市:1883年法国数学家 Ed ...

  9. Java经典算法大全

    1.河内之塔.. 2.Algorithm Gossip: 费式数列. 3. 巴斯卡三角形 4.Algorithm Gossip: 三色棋 5.Algorithm Gossip: 老鼠走迷官(一) 6. ...

随机推荐

  1. margin负值-内秀篇

    zccst整理 margin系列之布局篇 margin系列之bug巡演(三) margin系列之bug巡演(二) margin系列之内秀篇(二) margin系列之bug巡演 margin系列之内秀篇 ...

  2. HUST 1602 Substring

    水题. #include<cstdio> #include<cstring> #include<cmath> #include<string> #inc ...

  3. JDBC操作数据时中文乱码

    /** * DB地址 */ private static final String DB_URL="jdbc:mysql://localhost:3306/db_book?useUnicod ...

  4. 将ADS1.2的工程迁移到KEIL上-基于2440

    裸机程序应该是一个很好的选择 1. 不拷贝启动代码,因为我们用自己的启动代码 2.       建立工程目录分级,建立完成后如下所示 拷贝相应代码到对应目录中 Option中拷贝 Core中拷贝 建立 ...

  5. 图解 Monad

    原文地址: http://www.ruanyifeng.com/blog/2015/07/monad.html

  6. css3快速复习

    选择器边框.阴影 border-radius: 50%; 设置正圆形背景的改变CSS3重要的新东西: ● transition 过度,让一个元素从一个样式,变为另一个样式,不再是干蹦了,而是有动画,均 ...

  7. Linux内核探索之路——关于方法

    转载自:http://blog.chinaunix.net/uid-20608849-id-3014502.html   Linux内核实践之路 -给那些想从Linux内核找点乐趣的人 一个不能回避的 ...

  8. CCF 201612-1 中间数

    试题编号:201612-1 试题名称:中间数 时间限制:1.0s 内存限制:256.0MB 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量, ...

  9. 读书笔记--用Python写网络爬虫02--数据抓取

    抓取(scraping)---爬虫从网页中抽取一些数据用以实现某些用途. 三种抽取网页数据的方法:正则表达式.Beautiful Soup和lxml. 2.1 分析网页 通过浏览器自带选项,查看网页源 ...

  10. Java元注解

    元注解是指注解的注解,包括@Retention @Target @Document @Inherited四种. 1.@Retention: 定义注解的保留策略@Retention(RetentionP ...