一個關於矩陣的問題


需求: 用程序實現一個正方形矩陣,要求是: 裏面元素的內容從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;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章