C语言实现蛇形输出
程序员文章站
2023-02-02 09:28:00
实现如下的蛇形输出:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
参考代码如下所示:
#include...
实现如下的蛇形输出:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
参考代码如下所示:
#include #include int main() { int n; int x,y,round; //a[x][y],x是二维数组的第一个下标,y是二维数组的第二个下标, //round是转的圈数,从0开始。 int count = 1;//从1开始计数 printf("please input a number:\n"); scanf("%d",&n);//用户输入n的值 int (*a)[n] = calloc(n * n,sizeof(int));//创建n*n的矩阵 for(round = 0; round < n / 2; round++) { x = round; for(y = round; y < n - round; y++) { a[x][y] = count; count++; } //print 1,2,3,4,5 y = n - round - 1; for(x = round + 1; x < n - round - 1; x++) { a[x][y] = count; count++; } //print 6,7,8 x = n - round - 1; for(y = n - round - 1; y >= round; y--) { a[x][y] = count; count++; } //print 13,12,11,10,9 y = round; for(x = n - round - 2; x > round; x--) { a[x][y] = count; count++; } //print 16,15,14 } if(n % 2 == 1) { a[n / 2][n / 2] = n * n; } for(x = 0 ; x < n; x++) { for(y = 0; y < n; y++) { printf(" %d ",a[x][y]); } printf("\n"); } free(a); return 0; }