作业帮 > 综合 > 作业

C语言,输出4*4的螺旋矩阵.

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/17 07:58:43
C语言,输出4*4的螺旋矩阵.
请在语句上批注解释,本人初学者,语句请尽量简单.
C语言,输出4*4的螺旋矩阵.
输出结果是以下的样子吗?
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
再问: 对。
再答: 以下代码,把矩阵分为五块区域,分别进行填数
#include <stdio.h>
#define N 4
int main(void)
{
\x09int i,j,k,base=1,n;
\x09int a[N][N]={0};
\x09
\x09n=N;
\x09
\x09if(n%2==1)
\x09\x09a[(n-1)/2][(n-1)/2]=n*n;//奇数的矩阵的中心点

\x09for(k=0;k<n/2;k++)     //n/2为每区域需要填空的行/列数
\x09{
\x09\x09for(i=k;i<=n-1-k;i++)//第一区块
\x09\x09\x09a[k][i]=base++;;
\x09\x09for(j=k+1;j<n-1-k;j++)//第二区块
\x09\x09\x09a[j][n-1-k]=base++;
\x09\x09for(i=n-1-k;i>k;i--)//第三区块
\x09\x09\x09a[n-1-k][i]=base++;
\x09\x09for(j=n-1-k;j>k;j--)//第四区块
\x09\x09\x09a[j][k]=base++;
\x09}
\x09//输出矩阵
\x09for(i=0;i<n;i++)
\x09{
\x09\x09for(j=0;j<n;j++)
\x09\x09\x09printf("%4d",a[i][j]);
\x09\x09printf("\n");
\x09}
\x09return 0;
}