永发信息网

c语言实现 3阶幻方

答案:2  悬赏:20  手机版
解决时间 2021-07-21 11:24
  • 提问者网友:像風在裏
  • 2021-07-20 19:12

就是在3*3的格子里 把123456789填进去 要求横竖斜的三个数和是15

怎么样用C语言实现 急求!!!

最佳答案
  • 五星知识达人网友:狂恋
  • 2021-07-20 20:33
#include<stdio.h>
int main()
{
int i,j,i1,j1,x,a[100][100];
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
a[i][j] = 0;
}
i=1;
j = (int)((3+1)/2);
x=1;
while(x<=3*3)
{
a[i][j] = x;
x++;
i1=i;
j1=j;
i--;
j--;
if(i==0)
i=3;
if(j==0)
j=3;
if(a[i][j] != 0)
{
i = i1+1;
j = j1;
}
}
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
return 1;
}
全部回答
  • 1楼网友:过活
  • 2021-07-20 21:01
奇数阶幻方: #include <stdio.h> #define N 3 int main() { int a[N][N] = { 0 }; int i, j, x, y, m, n; a[x=0][y=N/2] = 1; for ( i = 2; i <= N*N; ++i ) { m = x-1; n = y+1; if ( x == 0 ) m = N-1; if ( y == N-1 ) n = 0; if ( a[m][n] != 0 ) m = x+1, n = y; a[x=m][y=n] = i; } for ( i = 0; i < N; ++i ) { for ( j = 0; j < N; ++j ) { printf( "%-2d ", a[i][j] ); } putchar( '\n' ); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯