急需一个c语言程序题的答案,谢谢 20

使用指针变量及宏定义,宏名为limit,建立一个螺旋数组A[limit][limit]并输出。例如:#definelimit5时:13141516112232417211... 使用指针变量及宏定义,宏名为limit,建立一个螺旋数组A[limit][limit]并输出。例如:#define limit 5 时:

13 14 15 16 1

12 23 24 17 2

11 22 25 18 3

10 21 20 19 4

9 8 7 6 5
展开
 我来答
huoji1987
2007-05-15
知道答主
回答量:56
采纳率:0%
帮助的人:22.1万
展开全部
这是个魔方矩阵问题,给你个答案:
把里面需要输入的地方改成你的宏定义就行了

#include <stdio.h>
void main()
{ int a[15][15],i,j,k,m,n,p;
p=1;
while(p==1)
{
printf("Enter n (n is a odd number from 3 to 15):> ");
scanf("%d",&n);
if((n>=3)&&(n<=15)&&(n%2==1))
p=0;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
j=n/2;
a[0][j]=1;
for(k=2;k<=n*n;k++)
{ i=i-1;
j=j+1;
if((i<0)&&(j>n-1))
{ i=i+2;
j=j-1;
}
else
{ if(i<0)
i=n-1;
if(j>n-1)
j=0;
}
if(a[i][j]==0)
a[i][j]=k;
else
{ i=i+2;
j=j-1;
a[i][j]=k;
}
}
printf("\n");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式