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;
}
全部回答
奇数阶幻方:
#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' );
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯