C语言 蛇形填数

阅读: 评论:0

C语言 蛇形填数

C语言 蛇形填数

蛇形填数。在n×n方阵里填入1,2,…,n×n,要求填成蛇形。

例如,n=4时方阵为:

10 11 12  19 16 13  28 15 14  37  6  5  4

解决此题的一个重要原则就是先判断下一个要填的位置是否满足条件,再填数。不是发现了不能填再退回来。


代码如下:

#include <stdio.h>
#include <string.h>
#define MAXN 100
int matrix[MAXN][MAXN];int main()
{int n;while(1 == scanf("%d", &n)){memset(matrix, 0, sizeof(matrix));  // 先将矩阵全部置为0int x = 0, y = n - 1;               // 从右上角开始填数int ct = matrix[x][y] = 1;          // 右上角第一个数填1while(ct != n * n)                  // 填剩下的数,原则是先判断下一个要填的位置是否超出边界和是否为0,再填数{while(x + 1 < n  && !matrix[x+1][y]) matrix[++x][y] = ++ct;     // 由上倒下while(y - 1 >= 0 && !matrix[x][y-1]) matrix[x][--y] = ++ct;     // 由右到左while(x - 1 >= 0 && !matrix[x-1][y]) matrix[--x][y] = ++ct;     // 由下到上while(y + 1 < n  && !matrix[x][y+1]) matrix[x][++y] = ++ct;     // 由左到右}for(x = 0; x < n; ++x)      // 输出填好的矩阵{for(y = 0; y < n; ++y)printf("%3d ", matrix[x][y]);putchar('n');}}return 0;
}

本文发布于:2024-01-29 14:21:28,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170650929315889.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:蛇形   语言
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23