需求: 用程序实现一个正方形矩阵,要求是: 里面元素的内容从a[0][0] 开始,逆时针从外向里写数字。
eg: 一个4x4 的矩阵,因该输出的是:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
程序如下:
#include<stdio.h>
//表示为 N 阶的正方形矩阵(4~9)
#define N 4
int main()
{
int data = 1;
int a[N][N] = {0};
int i, j, k, m, n, count;
count = N / 2;
for(k = 0; k < count; k++)
{
for(i = k; i < (N-k); i++ )
a[k][i] = data ++ ;
for(j = (k+1); j < (N-1-k); j++)
a[j][N-1-k] = data ++ ;
for(m = (N-1-k); m >= k; m-- )
a[N-1-k][m] = data ++ ;
for(n = (N-2-k); n > k; n--)
a[n][k] = data ++ ;
}
if(N % 2 != 0)
a[k][k] = N*N; //a[k][k] = data++;
printf("\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
return 0;
}