题目描述
方阵的主对角线之上称为“上三角”。 请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。
输入
程序运行时,从标准输入获得整数n(3~20)
输出
程序输出:方阵的上三角部分。 要求格式:每个数据宽度为4,右对齐。
样例输入
3
样例输出
1 2 3
6 4
5
#include<stdio.h>
int main()
{
int low,i,j,hi,N;
int a[80][80];
while(scanf("%d",&N))
{
if(N==0||N==1||N==2)
break;
low=0;
hi=N;
for(j=1; j<=N*(N+1)/2; low++,hi--)
{
//N行螺旋共有N*(N+1)/2个数
//采用的方法是将1~N*(N+1)/2依次填入到对应位置
for(i=low; i<hi-low; i++)
a[low][i]=j++;
for(i=low+1; i<hi-low; i++)
a[i][hi-i-1]=j++;
for(i=(hi-low)-2; i>low; i--)
a[i][low]=j++;
}
for(i=0; i<N; i++)
{
for(j=0; j<N-i; j++)
printf("M",a[i][j]);
printf("\n");
}
break;
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-13413.html