C语言简单问题 !急!
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 06:34:18
C语言简单问题 !急!
《射雕英雄传》中黄蓉破解瑛姑的九宫格,口诀为:“九宫之义,法以灵龟,二四为肩,六八为足,戴九履一,左三右七,五居中央”,即如下图:
试用二维数组实现九宫格(将1至9这九个数字排成方阵,不论纵横斜角,每三个数相加,结果都相等).
谢谢大神速答
n=3 的时候.
#include "stdio.h"
int main()
{
int n;
int d[10][10];
int i,j,k,stx,sty,x,y;
printf("输入n:");//n*n阶幻方
scanf("%d",&n);
stx=0;
sty=(n+1)/2;
for(i=stx,j=sty,k=1;k<=n*n;k++,j++,i++)
{
if(i<1)
x=n+i;
else if(i>n)
x=i-n;
else
x=i;
if(j<1)
y=n+j;
else if(j>n)
y=j-n;
else
y=j;
//printf("%d,%d\t",x,y);
d[x][y]=k;
if(k%n==0)
{
stx=stx+1;
sty=sty-1;
i=stx-1;
j=sty-1;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d\t",d[i][j]);
}
printf("\n\n");
}
}
再问: 运行结果给看下呗
再答:
再问: 大神 你能把程序改成 只允许三行三列的么?这个可能有点复杂,对于喳喳的我 交上去可能有点假
再答: #include "stdio.h"
int main()
{
int n;
int d[10][10];
int i,j,k,stx,sty,x,y;
n=3;
stx=0;
sty=(n+1)/2;
for(i=stx,j=sty,k=1;k
#include "stdio.h"
int main()
{
int n;
int d[10][10];
int i,j,k,stx,sty,x,y;
printf("输入n:");//n*n阶幻方
scanf("%d",&n);
stx=0;
sty=(n+1)/2;
for(i=stx,j=sty,k=1;k<=n*n;k++,j++,i++)
{
if(i<1)
x=n+i;
else if(i>n)
x=i-n;
else
x=i;
if(j<1)
y=n+j;
else if(j>n)
y=j-n;
else
y=j;
//printf("%d,%d\t",x,y);
d[x][y]=k;
if(k%n==0)
{
stx=stx+1;
sty=sty-1;
i=stx-1;
j=sty-1;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d\t",d[i][j]);
}
printf("\n\n");
}
}
再问: 运行结果给看下呗
再答:
再问: 大神 你能把程序改成 只允许三行三列的么?这个可能有点复杂,对于喳喳的我 交上去可能有点假
再答: #include "stdio.h"
int main()
{
int n;
int d[10][10];
int i,j,k,stx,sty,x,y;
n=3;
stx=0;
sty=(n+1)/2;
for(i=stx,j=sty,k=1;k