输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限 比如: 输入: 输出: 输入: 输出: #include<stdio.h> int main(void)
{
int n,m,i,j,temp;
int dir = ; //0向右,1向下,2向左,3向上,
scanf("%d%d",&m,&n);
int arr[m][m]; //对数组初始化 arr[m][m] = {0}编译不通过
for(i=; i<m; i++)
{
for(j=; j<m; j++)
{
arr[i][j] = ;
}
} i = j = ;
temp = ;
while(temp <= m*m)
{
if(temp > n)break;
arr[i][j] = temp;
switch(dir)
{
case :
{
if(j+ == m || arr[i][j+] > )
{
i++;
dir = ;
}
else j++; break;
}
case :
{
if(i+ == m || arr[i+][j] > )
{
j--;
dir = ;
}
else i++; break;
}
case :
{
if(j - < || arr[i][j-] > )
{
i--;
dir = ;
}
else j--; break;
}
case :
{
if(arr[i-][j] > )
{
j++;
dir = ;
}
else i--; break;
}
}
temp++;
} //打印数组
for(i=; i<m; i++)
{
for(j=; j<m; j++)
{
printf("%3d",arr[i][j]);
}
printf("\n");
}
return ;
}