7-21 螺旋方陣 (20分)


7-21 螺旋方陣 (20分)
 

所謂“螺旋方陣”,是指對任意給定的N,將1到N×N的數字從左上角第1個格子開始,按順時針螺旋方向順序填入N×N的方陣里。本題要求構造這樣的螺旋方陣。

輸入格式:

輸入在一行中給出一個正整數N(<10)。

輸出格式:

輸出N×N的螺旋方陣。每行N個數字,每個數字占3位。

輸入樣例:

5
 

輸出樣例:

  1  2  3  4  5
 16 17 18 19  6
 15 24 25 20  7
 14 23 22 21  8
 13 12 11 10  9


代碼講解:這題很有意思 我用的是模擬,就是按照旋轉順序先寫到二維數組當中,最外層變量為圈數。

#include<stdio.h>
int main()
{
 int n;
 scanf("%d",&n);
 int a[n][n];
 int count=0;
 int i,j;
 for(i=0;i<(n+1)/2;i++)
 {
  for(j=i;j<n-i;j++)
  a[i][j]=++count;
  for(j=i+1;j<n-i;j++)
  a[j][n-i-1]=++count;
  for(j=n-i-2;j>i;j--)
  a[n-i-1][j]=++count;
  for(j=n-i-1;j>=i+1;j--)
  a[j][i]=++count;
  
 }
 for(i=0;i<n;i++)
 {
  for(j=0;j<n;j++)
  printf("%3d",a[i][j]);
  printf("\n");
 }
 return 0;
 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM