📄 奇数魔方.txt
字号:
奇数魔方:
#include <stdio.h>
#include <malloc.h>
void main()
{
int n,i,**matrix;
do
{
printf("请输入魔方阵的阶数(必须是奇数):n=");
scanf("%d",&n);
}while(n<0 || n%2==0);
matrix=(int **)malloc(sizeof(int *)*n);
for(i=0;i<n;i++)
*(matrix+i)=(int *)malloc(sizeof(int)*n);
int p,q,j,l,k;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
matrix[i][j]=0;
p=n/2;
q=n-1;
for(i=1;i<=n*n;i++)
{
matrix[p][q]=i;
// printf("%d,%d,%d\n",matrix[p][q],p,q);
l=q;k=p;
p++;q++;
if(p==n)
p=p%n;
if(q==n)
q=q%n;
if(matrix[p][q]!=0)
{
q=l-1;
p=k;
}
if(q==-1)
q=n-1;
}
printf("%d阶的魔方的矩阵为:\n",n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%-3d ",matrix[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
free (*(matrix+i));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -