蛇形填数

来源:互联网 发布:linux修复win10引导 编辑:程序博客网 时间:2024/06/05 01:50

蛇形填数又称为螺旋矩阵,题意很简单不再描述,直接运行代码即可。

代码如下:

#include<stdio.h>#include<string.h>#define max 10int a[max][max];int main(){int n,x,y,t=0;printf("请输入一个不大于10的数\n");scanf("%d",&n);memset(a,0,sizeof(a));x=0;y=n-1; //表示从右上角开始写t=a[x][y]=1;while(t<n*n){//while判断是否越界,并判断是否已经赋过值while(x+1<n && !a[x+1][y])a[++x][y]=++t;//从右上角至右下角while(y-1>=0 && !a[x][y-1])a[x][--y]=++t;//从右下角到左下角while(x-1>=0 && !a[x-1][y])a[--x][y]=++t;//从左下角到左上角while(y+1<n && !a[x][y+1])a[x][++y]=++t;//从左上角到右上角}for(x=0;x<n;x++){for(y=0;y<n;y++)printf("%3d",a[x][y]);printf("\n");}return 0;}

题目思路来源:《算法竞赛入门经典》作者:刘汝佳

0 0