#include<stdio.h>
/*输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限
5 18
输出:
1 2 3 4 5
16 17 18 0 6
15 0 0 0 7
14 0 0 0 8
13 12 11 10 9
*/
#define MAX 100
void main()
{
int a[MAX][MAX]={0};
int n,t;
int i,p,q;
int r,l,u,d,type;
scanf("%d %d",&n,&t);
type = 0; //确定输入的方向,0向右1向下2向左3向上
r = n-1; //向右输入的边界
d = n-1; //向下输入的边界
l = 0; //向左输入的边界
u = 1; //向上输入的边界
for(i=1,p=0,q=0;i<=t;i++)
{
switch(type)
{
case 0: a[p][q++] = i;
if(q==r)
{
type = 1;
r--;
}
break;
case 1: a[p++][q] = i;
if(p==d)
{
type = 2;
d--;
}
break;
case 2:
a[p][q--] = i;
if(q==l)
{
type = 3;
l++;
}
break;
case 3:
a[p--][q] = i;
if(p==u)
{
type = 0;
u++;
}
break;
}
}
for(p=0;p<n;p++)
{
for(q=0;q<n;q++)
printf("%3d",a[p][q]);
printf("\n");
}
}
流程控制 NN矩阵
最新推荐文章于 2023-10-27 22:46:49 发布