要求输出1到n*n的自然数构成的魔方阵.

匿名用户
2013-06-04
展开全部
#include"stdio.h"
main()
{
int a[20][20],i,j,k,p=1,m,n;
while(p==1)
{
printf("Enter n(n=1--19):");
scanf("%d",&n);
if(n>0&&n<=19&&n%2!=0)p=0;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
for(k=2;k<=n*n;k++)
{
i-=1;
j+=1;
if(i<1&&j>n)
{
i+=2;
j-=1;
}
else
{
if(i<1)i=n;
if(j>n)j=1;
}
if(a[i][j]==0)a[i][j]=k;
else
{
i+=2;
j-=1;
a[i][j]=k;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)printf("%4d",a[i][j]);
printf("\n\n");
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式