利用数组批量操作数据—输出任意阶数魔方阵(奇数,偶数算法略有不同)
#include <stdio.h>
void ODD_CUBE(int N); //s声明子函数,需要一个参数(奇数)
int main()
{
ODD_CUBE(9) ; //输入阶数
return 0;
}
void ODD_CUBE(int N)
{ //编写子函数
int a[N][N];
int i; //i代表数字2~n^2,
int col,row; //line为i所在行数,column为i所在列数
col = (N-1)/2;
row = 0;
a[row][col] = 1; //先对1的位置进行定义
for(i = 2; i <= N*N; i++) //每次循环都能让i找到对应的行,列数存
{
if((i-1)%N == 0 )
{
row++;
}
else
{
row = (row+N)%N;
col ++;
col %= N;
}
a[row][col] = i; //找到行数,列数后,将常量填到对应的数组元素中
}
for(row = 0;row<N;row++) //将数组a依次打印输出
{
for(col = 0;col < N; col ++)
{
printf("%d\t",a[row][col]);
}
printf("\n");
}
}
程序实例:N=9