#包含?& ltstdio.h & gt
# defineMAX _ COLUMN _ SIZE 20
int?主要(無效)
{
int?我,?j?,?k?;
int?專欄?;?//用戶輸入的列數
int?numPtrArray[最大列大小][最大列大小]?=?{?0?}?;?
intminSeries?;?//每圈?每壹排?每個斜線?每壹列?最小的連續位數?
intcycleNo?=?0?;?//轉數,從0轉開始計數?
intloopNum?=?1?;?//用於螺旋排列的數字?
intlimit?;
Puts("請輸入列數(3~20):")?;
scanf("%d "?,?& amp專欄)?;?
//檢查用戶輸入(自己做!!!)
//螺旋書寫數字
明系列?=?專欄?;
做
{
//先寫?好嗎?數字
for(i=0+cycleNo?;?我& ltminSeries+cycleNo?;?i++)
{
numPtrArray[cycleNo][i]?=?loopNum++?;?
}
min series-;
//再寫?傾斜?數字
我-?;
for(j=0+cycleNo?;?j & ltminSeries+cycleNo?;?j++)
{
numPtrArray[j+1][ - i]?=?loopNum++?;?
}
min series-;
//最後壹次寫?專欄?數字
for(k=0?;?k & lt明系列?;?k++)
{
numPtrArray[ - j][cycleNo]?=?loopNum++?;
}
min series-;
//下壹圈開始。
cycleNo++?;
?
}while(minSeries?& gt?0) ;
//打印結果
printf(" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \ n ")?;?//分割線
極限?=?專欄?;
對於(?i=0?;?我& lt專欄?;?i++?)
{
for(j=0?;?j & lt極限?;?j++)
{
printf("%4d "?,?numPtrArray[i][j])?;
}
printf("\n ")?;
極限-?;?
}
回歸?0?;
}