您的位置:首页 > 其它

蛇形矩阵

2014-09-22 23:30 162 查看
#include<cstdio>
#include<cstring>

int main() {

	int num[20];
	int numb[8][8];
	int number;
	memset(numb,0,sizeof(numb));
	scanf("%d", &number);
	
	for(int i = 0; i < 3; i++)
		num[i] =number - 1;
	int temp = number - 1;
	int temp2 = number - 2;
	int i, j;
	for( i = 0, j = 3; i < temp ;i++) {
		num[j++] = temp2;
		num[j++] = temp2--;
	}
		
	numb[0][number - 1] = 1;
	int row = number - 1, line = 0;
	int n = 2;
	for(i = 0;; i++) {
		for(int k = 0; k < num[i];k++)  {
			numb[++line][row] = n++;
		}
		i++;
		if(n == number * number + 1)
			break;
		for(int k = 0; k < num[i]; k++)
			numb[line][--row] = n++;
		i++;
		if(n == number * number + 1)
			break;
		for(int k = 0; k < num[i]; k++)
			numb[--line][row] = n++;
		i++;
		if(n == number * number + 1)
			break;
		for(int k = 0; k < num[i]; k++)
			numb[line][++row] = n++;
		if(n == number * number + 1)
			break;
	}

	for(int i = 0; i < number; i++) {
		for(int j = 0; j < number; j++) 
			printf("   %d",numb[i][j]);
		printf("\n");

	}

}


注意++的前置和后置,会改变的,慎用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: