#include<stdio.h> #define MAX 100 int a[MAX][MAX]={0};//将整个数组初始化为零 void main() { int i=0,j=0; int n,count=1; scanf("%d",&n); if(n>MAX)//如果输入的数组大于初始化的数组,程序结束 return; j=n-1; while(count<=n*n)//这点需要注意 必须是小于等于 { //如果输入的数是偶数的话小于就够了 但当输入的数是奇数就需要等于才行 while(i<n && !a[i][j])//!a[i][j]这也是必须加的 先从最右边填 { a[i][j]=count++; i++; } while(j>0 && !a[i-1][j-1]) { a[i-1][j-1]=count++; j--; } while(i>1 && !a[i-2][j]) { a[i-2][j]=count++; i--; } while(j<n-2 && !a[i-1][j+1]) { a[i-1][j+1]=count++; j++; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%3d",a[i][j]); } printf("\n"); } }
当输入4的时候,输出如下:
时间: 2024-11-09 10:32:38