買う予定リスト

すきリスト

積読リスト

#include

#define MATRIX 500

void main (void){

	int m[MATRIX][MATRIX];	
	int x;	/* matrix x */
	int y;	/* matrix y */
	int n = 1;	/* number */
	int l = 0;	/* loop count */
	int max;

	scanf("%d", &max);

	while( n <= max*max ){
		/* up row*/
		y = l;
		for( x = l ; x < max-1-l ; x++ ){
			m[y][x] = n;
			n++;
		}

		/* right column */
		x = max-1-l;
		for( y = l ; y < max-1-l ; y++ ){
			m[y][x] = n;	
			n++;

		}

		/* down row */
		y = max-1-l;
		for( x = max-1-l ; x > l ; x-- ){
			m[y][x] = n;
			n++;
		}

		/* left column */
		x = l;
		for( y = max-1-l ; y > l ; y-- ){
			m[y][x] = n;
			n++;
		}

		/* center */
		if(n == max*max){
			m[max/2][max/2] = n;
			n++;
		}
		l++;
	}

	/* print */
	for( y = 0 ; y < max ; y++){
		for(x = 0 ; x < max ; x++ ){
			printf("%3d ", m[y][x]);
		}
		printf("\n");
	}
	return;
}