欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言 实验7-2-9 螺旋方阵 (20分)

程序员文章站 2022-03-13 13:41:35
...

C语言 实验7-2-9 螺旋方阵 (20分)

#include<stdio.h>
int main (void)
{
	int n,i,j,a[10][10]={0},s=1;
	scanf("%d", &n);
	int end=n,st=0;   // end:每次循环的最大下标   st:最小下标
	int k=n;    //记录一下 n的初始值,遍历输出时用
	
	while (n > 1){
		for (j=st; j<end-1; j++)   // n-1个数字一组
			a[st][j] = s++;
		for (i=st; i<end-1; i++)
			a[i][end-1] = s++;
		for (j=end-1; j>st; j--)
			a[end-1][j] = s++;
		for (i=end-1; i>st; i--)
			a[i][st] = s++;
		n -= 2;
		end -= 1;
		st += 1;
	}
	if (k % 2 == 1)      // 别漏了最中间的那个
		a[st][end] = s;
	for (i=0; i<k; i++){
		for (j=0; j<k; j++)
			printf("%3d", a[i][j]);
		printf("\n");
	}
	
	return 0;
}