- #include <stdio.h>
- int a[20][20] = {0};
- void matrix(int n)
- {
- int k;
- int i, j;
- int cnt = 0;
- for(k=0; k<(n+1)/2; ++k) {
- for(j=k; j<=n-1-k; j++) {
- a[k][j] = cnt++;
- }
- for(i=k+1; i<=n-1-k; i++) {
- a[i][n-1-k] = cnt++;
- }
- for(j=n-k-2; j>=k; j--) {
- a[n-1-k][j] = cnt++;
- }
- for(i=n-2-k; i>=k+1; i--) {
- a[i][k] = cnt++;
- }
- }
- for(i=0; i<n; i++) {
- for(j=0; j<n; j++) {
- printf("%3d ", a[i][j]);
- }
- printf("\\n");
- }
- }
- void printMatrix() {
- int n;
- while(1) {
- printf("Enter N: ");
- scanf("%d", &n);
- if (n>0 && n<=20) break;
- scanf("%*[^\\n]");
- scanf("%*c");
- }
- matrix(n);
- }
- int main(int argc, char ** argv)
- {
- printMatrix(3);
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/181020136484.html
来源: http://www.codesnippet.cn/detail/181020136484.html