我直接放代码了,里面写了注释,大家自己看看就行。觉得有用的话可以点赞收藏!!!
#include<stdio.h>
#include<string.h>
int main(){
int n;
scanf("%d",&n);
if(n%2==0){
printf("你在输入些什么东西");//判断n是否是奇数
return 0;
}
int a=0,b=n/2;//先确定数字1的位置
int count[n][n]={{0},{0}};
count[a][b]=1;
//因为条件3的判断较简单,故先判断条件3
for(int i=2;i<=n*n;i++){
if((i-1)%n==0){
b=b;a=a+1;}
//判断条件2
else {a=a-1;b=b+1;}
if(a<0)a=n-1;
if(a==n)a=0;
if(b==n)b=0;
if(b<0)b=n-1;
count[a][b]=i;
//设置变量op以便能以矩阵形式输出
}int op=0;
for(int g=0;g<n;g++){
for(int h=0;h<n;h++){
printf("%d ",count[g][h]);op++;
if(op%n==0)printf("\n");
}
}
return 0;
}