感觉代码的逻辑没有问题,但运行起来就是错的
查看原帖
感觉代码的逻辑没有问题,但运行起来就是错的
558789
yenaibangbing楼主2021/8/29 15:45
#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,k=2,x,y;
	int a[40][40]={0};
		
	cin>>n;
	a[1][n/2+1]=1;
	x=1;
	y=n/2+1;
	
	for(k;k<=n*n;k++){
		if (x == 1 && y != n){
			a[n][y+1]=k;
			x=n;
			y++;
		}
		else if (y==n&&x!=1){
			a[x-1][1]=k;
			x--;
			y=1;
		}
		else if (x==1&&y==n){
			a[2][y]=k;
			x=2;
		}
		else if (x!=1&&y!=n){
			if (a[x-1][y+1]==0){
				a[x-1][y+1]=k;
				x--;
				y++;
			}
			else a[x+1][y]=k;x++;
		    
		}
		
	}
	for (int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){	
			cout<<a[i][j]<<" ";
		}
			cout<<endl;			
	}
	return 0;
}
/* n=3
0 1 0
7 5 6
8 0 2*/
	
2021/8/29 15:45
加载中...