#include
"
Stdio.h
"
#include " Conio.h "
#define MAX 150
int a[MAX][MAX];
main()
... {
int n,i,j,m=1,s,k,t,z;
system("graftabl 936");
clrscr();
printf("|--------------------------------------------------|");
printf(" | 奇偶幻方 |");
printf(" | Estel |");
printf(" | HF.C 07/01/27 |");
printf(" | 输入一个数字N,生成一个N*N的矩阵 |");
printf(" | 并使之横竖斜线的和相等,组成幻方 |");
printf(" |--------------------------------------------------|");
printf(" 示例: (N): N=3 8 1 6 3 5 7 4 9 2 ");
printf(" input a Digital (N): ");
scanf("%d",&n);
while(n>150||n<3)
...{ printf(" %d error, 150> N >3: ",n);
scanf("%d",&n);}
if(n%2==0)
...{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
...{a[i][j]=m; m++;}
k=n-1;s=0 ;
while(k>=n/2)
...{ t=a[s][s];
a[s][s]=a[k][k];
a[k][k]=t;
t=a[s][k];
a[s][k]=a[k][s] ;
a[k][s]=t ;
k--;s++ ;
}
goto JG;
}
i=0;j=((n+1)/2-1);
while(m<=n*n)
...{ a[i--][j++]=m++;
if((m-1)%n==0&&m>=0)
...{i=i+2;
j--;}
else if(i<0)i+=n;
else if(j>=n)j-=n;
}
JG:
printf(" N=%d ",n);
for(i=0;i<n;i++)
...{
for(j=0;j<n;j++)
printf("%-5d ",a[i][j]);
printf(" ");
}
printf(" Please any key exit ") ;
xieru(n);
getch();
}
xieru( int n)
... {FILE *fp;
int i,j;
if((fp=fopen("data.txt","w"))==NULL)
printf("保存数据失败= 无法建立或写入data.txt");
fprintf(fp,"幻方矩阵排列: ");
for(i=0;i<n;i++)
...{ for(j=0;j<n;j++)
fprintf(fp,"%-5d ",a[i][j]);
fprintf(fp," ") ;
}
}
#include " Conio.h "
#define MAX 150
int a[MAX][MAX];
main()
... {
int n,i,j,m=1,s,k,t,z;
system("graftabl 936");
clrscr();
printf("|--------------------------------------------------|");
printf(" | 奇偶幻方 |");
printf(" | Estel |");
printf(" | HF.C 07/01/27 |");
printf(" | 输入一个数字N,生成一个N*N的矩阵 |");
printf(" | 并使之横竖斜线的和相等,组成幻方 |");
printf(" |--------------------------------------------------|");
printf(" 示例: (N): N=3 8 1 6 3 5 7 4 9 2 ");
printf(" input a Digital (N): ");
scanf("%d",&n);
while(n>150||n<3)
...{ printf(" %d error, 150> N >3: ",n);
scanf("%d",&n);}
if(n%2==0)
...{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
...{a[i][j]=m; m++;}
k=n-1;s=0 ;
while(k>=n/2)
...{ t=a[s][s];
a[s][s]=a[k][k];
a[k][k]=t;
t=a[s][k];
a[s][k]=a[k][s] ;
a[k][s]=t ;
k--;s++ ;
}
goto JG;
}
i=0;j=((n+1)/2-1);
while(m<=n*n)
...{ a[i--][j++]=m++;
if((m-1)%n==0&&m>=0)
...{i=i+2;
j--;}
else if(i<0)i+=n;
else if(j>=n)j-=n;
}
JG:
printf(" N=%d ",n);
for(i=0;i<n;i++)
...{
for(j=0;j<n;j++)
printf("%-5d ",a[i][j]);
printf(" ");
}
printf(" Please any key exit ") ;
xieru(n);
getch();
}
xieru( int n)
... {FILE *fp;
int i,j;
if((fp=fopen("data.txt","w"))==NULL)
printf("保存数据失败= 无法建立或写入data.txt");
fprintf(fp,"幻方矩阵排列: ");
for(i=0;i<n;i++)
...{ for(j=0;j<n;j++)
fprintf(fp,"%-5d ",a[i][j]);
fprintf(fp," ") ;
}
}