奇数魔方.txt
来自「其中一部分是自己写得,一部分是摘录的,希望站长能批准,我以后一定多多努力上传!」· 文本 代码 · 共 54 行
TXT
54 行
奇数魔方:
#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 + =
减小字号Ctrl + -
显示快捷键?