C语言编程生成n×n的矩阵,并逆时针输出。举例如下:输入3输出987216345

输入3 输出
9 8 7
2 1 6
3 4 5
输入4 输出
16 15 14 13
5 4 3 12
6 1 2 11
7 8 9 10

第1个回答  2018-11-06
#include <stdio.h>
#include <stdlib.h>

int main()
{
int n;
printf("请输入矩阵大小:");
scanf("%d",&n);
int arr[n][n];
int i=0,j=0,s=n*n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
arr[i][j]=0;
}
}
int direct=0;
arr[0][0]=s--;
i=0;
j=0;
while(s>0)
{
if(direct==0)
{
if(arr[i][j+1]==0 && j+1<n)
{
arr[i][++j]=s--;
}
else
{
direct=1;
}
}
else if(direct==1)
{
if(arr[i+1][j]==0 && i+1<n)
{
arr[++i][j]=s--;
}
else
{
direct=2;
}
}
else if(direct==2)
{
if(arr[i][j-1]==0 && j-1>=0)
{
arr[i][--j]=s--;
}
else
{
direct=3;
}
}
else if(direct==3)
{
if(arr[i-1][j]==0 && i-1>=0)
{
arr[--i][j]=s--;
}
else
{
direct=0;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%02d ",arr[i][j]);
}
printf("\n");
}
return 0;
}

追问

为什么我这里显示有错。。。第九行这一行
int arr[n][n];

追答

编译器版本太低了,改一下