C语言——打印魔方阵(每一行,每一列,对角线之和相等)
《一》魔方阵说明:
魔方阵是一个N*N的矩阵;
该矩阵每一行,每一列,对角线之和都相等;
《二》魔方阵示例:
三阶魔方阵:
8 1 6
3 5 7
4 9 2
每一行之和:8+1+6=15;
3+5+7=15;
4+9+2=15;
每一列之和:8+3+4=15;
1+5+9=15;
6+7+2=15;
对角线之和:8+5+2=15;
6+5+4=15;
《三》魔方阵计算规律(行,列以1开始):
1.将“1”放在第一行,中间一列;
2.从2开始至N*N各数按如下规律:
每一个数存放的行比上一个数的行减1;
每一个数存放的列比上一个数的列加1;
3.当一个数行为1,下一个数行为N;
4.当一个数列数为N,下一个数列数为1,行数减1;
5.若按上述规则确定的位置有数字,或上一个数位第1行第N列,
下一个数字位置为上一个数的正下方(即行数减1,列数不变);
《四》源代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h> #define N 5 int main()
{
int a[N][N] = {};
int count = ;
int row = , cul = N / ;
while (count <= N*N)
{
a[row][cul] = count;
int i = row;
int j = cul;
if (i == )
{
i = N - ;
}
else
{
i = i - ;
}
j = (j + ) % N;
if (a[i][j]!=||(row==&&cul==N-))
{
i = row + ;
j = cul;
}
row = i;
cul = j;
count++;
} for (int i = ; i < N; i++)
{
for (int j = ; j < N; j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
} system("pause");
}
C语言——打印魔方阵(每一行,每一列,对角线之和相等)的更多相关文章
- 任意阶魔方阵(幻方)的算法及C语言实现
写于2012.10: 本来这是谭浩强那本<C程序设计(第四版)>的一道课后习题,刚开始做得时候去网上找最优的算法,结果发现奇数和双偶数(4的倍数)的情况下算法都比较简单,但是单偶数(2的倍 ...
- 魔方阵算法及C语言实现
1 魔方阵概念 填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5….魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是4 ...
- 神奇的魔方阵--(MagicSquare)(1)
本篇文章只对奇数阶以及偶数阶中阶数n = 4K的魔方阵进行讨论.下面就让我们进入正题: 1 :魔方阵的相关信息:(百度百科) https://baike.baidu.com/item/%E9%AD%9 ...
- n阶魔方阵(奇数阵)的输出
需求 要求输出1~n²的自然数构成的魔方阵. STEP 1 什么是魔方阵? 魔方阵,古代又称“纵横图”,是指组成元素为自然数1.2…n2的平方的n×n的方阵,其中每个元素值都不相等,且每行.每列以及主 ...
- Android之——JNI配置C语言打印Logcat信息
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47425073 这篇文章给大家介绍一下在JNI中怎样为C语言配置打印Logcat信息 ...
- C语言打印年历
摘要:使用C语言打印年历 最初看到这个是觉得比较有意思,记得读书时候只写过月历,年历要复杂一些,现在水平提高了,来重新写一下吧. 看了网上的一些代码,大都比较繁琐,本文采用全新的思路完成年历打印. 整 ...
- 神奇的魔方阵--(MagicSquare)(2)
在上一篇博客中,我们讨论了阶数为奇数,以及阶数为(4K)的魔方阵的排列规则,以及代码实现(详见:https://www.cnblogs.com/1651472192-wz/p/14640903.htm ...
- 【2(2N+1)魔方阵 】
/* 2(2N+1)魔方阵 */ #include<stdio.h> #include<stdlib.h> #define N 6 #define SWAP(x, y) {in ...
- C语言打印100到200之间的素数
用C语言打印素数,我们首先要了素数的相关定义:只有1和它本身两个因数的自然数,也就是说除了1和它本身外,不能被其他自然数整除的数就称为素数. 例如:101只能被1 和101 整除:103只能被1 和1 ...
随机推荐
- bzoj 3172 [Tjoi2013]单词(fail树,DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3172 [题意] 题目的意思是这样的,给若干个单词,求每个单词在这一堆单词中的出现次数. ...
- 我理解的RPC
这两天在学习公司一牛人写的RPC框架,一直都对RPC的概念很模糊,现在稍微清晰了些. rpc定义:RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一 ...
- leptonica使用问题
想要使用leptonica编写一个图像处理程序,或者调用leptonica/prog下例子程序,出现类似错误: leptTest ./test Error in pixReadStreamJpeg: ...
- PC-飞起来!我的Windows XP——五步快速优化Windows XP
虽然Microsoft的 Vista已经发售了快一年,但国内大部分系统用户仍使用着目前堪称完美的Windows XP.与以往的Windows操作系统一样,新安装的Windows XP可能还不在最佳状态 ...
- 转载 yii2-按需加载并管理CSS样式/JS脚本
一.资源包定义 Yii2对于CSS/JS 管理,使用AssetBundle资源包类. 创建如下: backend/assets/AppAsset.php namespace backend\asset ...
- VC++ 统计文件夹下面的当日和本月生成的图片
void GetCapNum(int * todayNum, int * mouthNum) { string path = ".\\res";//路径位于程序运行目录下的r ...
- 超详细单机版搭建hadoop环境图文解析
前言: 年前,在老大的号召下,我们纠集了一帮人搞起了hadoop,并为其取了个响亮的口号“云在手,跟我走”.大家几乎从零开始,中途不知遇到多少问题,但终 于在回家之前搭起了一个拥有12台服务器的集群, ...
- Redis学习手册(实例代码)
在之前的博客中已经非常详细的介绍了Redis的各种操作命令.运行机制和服务器初始化参数配置.本篇博客是该系列博客中的最后一篇,在这里将给出基于Redis客户端组件访问并操作Redis服务器的代码示例. ...
- Bluetooth 4.0之Android 讲解
Android平台包含了对蓝牙网络协议栈的支持,它允许一个蓝牙设备跟其他的蓝牙设备进行无线的数据交换.应用程序通过Android蓝牙API提供访问蓝牙的功能.这些API会把应用程序无线连接到其他的蓝牙 ...
- 【转】VS2010中使用AnkhSvn
今天想到要在自己的开发环境IDE(Visual Studio 2010)中安装一个代码管理器的插件,本人在使用VS2005的时候一直都是使用AnkhSvn-2.1.7444.278这版本,使用过程中也 ...