qq_37077232 2022-11-09 18:34 采纳率: 96%
浏览 31
已结题

c语言关于魔方阵问题

#include <stdio.h>
int main()
{
int i,j,n,a,i1,j1,arr[i][j]; //i,j为行列,n为n阶魔方,a是放置的数 ,i1,j1用于储存原位置
printf("请输入魔方阶数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
arr[i][j]=0;
}
i=1;
j=n/2+1;
arr[i][j]=1;
for(a=2;a<n*n;a++) //放置的数为a
{
i1=i;
j1=j;
i--; //上一行
j++; //下一列
if(i == 0)//没有上一行
{
i=n ;//放置最后一行
}
if(j == n+1) //没有下一列
{
j=1;
}
if (arr[i][j])
{
i=i1+1;
j=j1;
}
arr[i][j]=a;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",arr[i][j]);
}
printf("\n");
return 0;
}

img

为什么没有输出呀

  • 写回答

2条回答 默认 最新

  • X-道至简 2022-11-10 10:25
    关注

    声明 arr [i][j] 改为a[n][n] 试试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月9日