语言-关于4阶魔阵的写法,即16宫格

问题描述

关于4阶魔阵的写法,即16宫格

16宫格的做法是,1到16依次写进4阶方阵中,然后将位置(1,1)与位置(4,4)上的对换,(2,2)与(3,3)上的对换。再将(1,4)与(4,1)对换,(2,3)与(3,2)对换。
基于这种思想我给出了一个程序,但是好像没有输出正确的结果。
#include

int main() {
int A[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i,j;
for (i = 0; i < 2; i++) {
*(&A[0][0] + i * 4 + (i - 1)) = *(&A[0][0] + (4 - i) * 4 + (4 - i));//斜率为-1的对角线上数,(1,1)位子与(4,4)位子互换,(2,2)与(3,3)互换
*(&A[0][0] + i * 4 + (4 - i)) = *(&A[0][0] + (4 - i) * 4 + i);//斜率为1的对角线上的数,(1,4)与(4,1)互换,(2,3)与(3,2)互换,其他不变
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++)
printf("%3d ", *(&A[0][0] + i * 4 + j));
printf("n");
}
return 0;
}

解决方案

http://www.douban.com/group/topic/28700682/
http://blog.csdn.net/cmutoo/article/details/5487157

时间: 2024-11-01 08:55:50

语言-关于4阶魔阵的写法,即16宫格的相关文章

C语言实现奇数阶魔方阵的方法_C 语言

本文实例讲述了C语言实现奇数阶魔方阵的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: #include "stdio.h" #include "string.h" #include "stdlib.h" #define N 5 void main(){ int a[N][N]={0}; int i,j; int k; i = 0; j = N/2; a[0][j]=1; for(k = 2; k <= N*N; k++

c语言-linux C语言 send sendto recv recvfrom 的等价写法

问题描述 linux C语言 send sendto recv recvfrom 的等价写法 在linux中 send(s, buf, len, flags) 与 sendto(s, buf, len, flags, NULL, 0) 等价吗? recv(s, buf, len, flags) 与 recvfrom(s, buf, len, flags, NULL, 0) 等价吗? 解决方案 send,recv,sendto,recvfromsend,recv,sendto,recvfromse

各种语言版本的301转向代码的写法

一: IIS中实现301转向: 1.打开internet信息服务管理器,在欲重定向的网页或目录上按右键 2.选中"重定向到URL" 3.在对话框中输入目标页面的地址 4.选中"资源的永久重定向" 5.点击"应用"即可生效 二:ASP下的301转向代码: ASP下的301转向代码: <%@ Language="VBScript" %> <% Response.Status = "301 Moved P

《C语言程序设计:问题与求解方法》——2.16节赋值语句

2.16 赋值语句 通常的表达式不会改变变量的值.那么,如何通过运算来改变变量原来的值呢?如何通过已知的变量求出未知变量的值呢?这就要用到赋值运算符 "=" (以后将其简称为赋值号)构成的赋值语句.赋值运算符是具有副作用的运算符.所有可以改变变量值的运算符都称为具有副作用的运算符(第5章将要介绍的自增运算符 ++ 和自减运算符– –也是具有副作用的运算符). 赋值语句的格式是: 变量 = 表达式; 赋值语句的工作流程是: 1)计算出赋值号"="右边表达式的值. 2)

《C语言课程设计》一第2章 编 码 风 格2.0

第2章 编 码 风 格 编码风格旨在使代码更容易阅读.分享和检查.编译器虽然不会挑剔难看的代码,然而代码主要是写给人看的,代码和语言文字一样是为了表达思想.记载信息,所以一定要写得清楚.整洁.

《例说51单片机(C语言版)(第3版)》——1-6 实例演练

1-6 实例演练 例说51单片机(C语言版)(第3版) 单片机系统的设计中,软件与硬件息息相关,不同的电路设计,程序可能就不太一样.因此,在编写程序之前,必须确定电路的连接状态,例如,要利用89S51的P2来控制8个LED,让这8个LED分成两组(高4位与低4位)交替闪烁,其设计步骤如下. 图像说明文字首先把电路连接妥当,如图1-26所示.当P2的引脚输出低电压(0)时,其所连接的LED呈现正向偏压而发亮:若将引脚输出高电压(1)时,其所连接的LED不导通而不亮.因此,我们的程序设计就要让P2输

生成魔方阵(周记05-03)

最近加紧学C#,同时又想再看看算法.谁要咱们在科研口,就是一个自己的时间多,当然money也就少些了. 书买了不少,什么<21天学通C#>.<C#Primer>还有<Microsoft .Net框架程序设计(修订版)>.当然这些书的选择是本人看了不少书评后才买的,看了看都是不错的选择,好书! 书虽好但也要人用心来看啊,本人利用业余时间基本已浏览一遍,更细的知识点就要在以后的学习中好好掌握了. 说到这里,说出来你死都不会相信我在单位还是个小头,平日里受尽老老少少.上上下下

c-请教一下魔方阵的问题。。

问题描述 请教一下魔方阵的问题.. (每一行每一列以及对角线之和都相等的方阵) 要求输出1--n*n的魔方阵 (..用的方法不好..但是不知道哪里错了>_<) #include #include int main() { int m[15][15],k,n,i,j; for(n=2;n%2==0;) {printf("enter your number:"); scanf("%d",&n);} for(k=1,i=1,j=(n+1)/2;k<

Java语言中的函数编程

Java 语言中常被忽视的一个方面是它被归类为一种命令式(imperative)编程语言.命令式编程虽然由于与 Java 语言的关联而相当普及,但是并不是惟一可用的编程风格,也不总是最有效的.在本文中,我将探讨在 Java 开发实践中加入不同的编程方法 ── 即函数编程(FP). 命令式编程是一种用程序状态描述计算的方法.使用这种范型的编程人员用语句改变程序状态.这就是为什么,像 Java 这样的程序是由一系列让计算机执行的命令 (或者语句) 所组成的.另一方面, 函数编程是一种强调表达式的计算