计算机精英协会考核题 —— 第二题:蛇形填数

题目

2.蛇形填数
给出 n * n 方阵,要求从 1 开始按顺序依次填写,填写方式如下:
n = 4 时,
1 8 9 16
2 7 10 15
3 6 11 14
4 5 12 13
输入 n,请打印出方阵。

代码

#include <stdio.h>
int main (void)
{
	int n,a,b,c,d;
	int i[10][10];
	int p[10][10];
	
	scanf("%d",&n);  //给出n*n 

	for(a=0,c=1;a<n;a++)
	{
		
		for(b=0;b<n;b++)
		{
			i[a][b]=c++;
		}
    }
    for(a=0;a<n;a++)
    {
    	for(b=0;b<n;b++)
    	{
    		p[a][b]=i[b][a];
		}
	}
	for(b=0,c=0;b<n;b++,c++)
	{
		if(b%2==0)
		{
			for(a=0,d=0;a<=n-1;a++,d++)
			{
				i[c][d]=p[a][b];
			}
		 }
		else
		{
			for(a=n-1,d=0;a>=0;a--,d++)
			{
				i[c][d]=p[a][b];
			}
		 } 
	}
	
	for(a=0;a<n;a++)
	{
		for(b=0;b<n;b++)
		{
			printf("%4d",i[b][a]);
		}
		printf("\n");
	}
	
getchar();
return 0;
}
posted @ 2019-03-17 22:22  AlexKing007  阅读(105)  评论(0编辑  收藏  举报