c语言输入坐标输出螺旋步骤.,C语言,求高手指导输出螺旋形数字方阵 – 手机爱问...

我给你写了一个,使用指针完成的,你可以借鉴。

#include

#include

/*

* 将螺旋线设想为n*n的正方形,数字首先按照从左向右一次填入第一行,

* 到最后一列时向下,到最后一行是向左,。

。。。,也就是顺时针将数字填入

* 正方形中

* 定义旋转在不同的方向上的横向和纵向变化的值

*/

struct Direct {

int dx; //横向增量 1:向右,0 不变 ,-1 向左

int dy; //纵向增量 1:向下,0 不变 ,-1 向上

};

struct Direct dirs[] = {

{1, 0},{0, 1},

{-1, 0},

{0, -1}

};

int* rect; //不使用数组,使用指针

int minx, maxx; //当前行需要填写的最大列和最小列

int miny, maxy;

/**

* 生成一个size * size 大小的螺旋线

* @param size

*/

void insert(int size) {

int i;

int dir = 0;

int x;

int y;

minx = 0;

maxx = size - 1;

miny = 0;

maxy = size - 1;

x = 0;

y = 0;

for (i = 1; i 16) {

printf("螺旋线最大值是:15*15,输入有误,使用默认的 4*4:\n");

size = 4;

}

} else {

printf("usage : %s [size] \n", argv[0]);

printf(" : default seize = 4\n");

printf(" : 最小值是:1,最大值是:15\n");

printf("\n下面显示的是默认值为4*4的螺旋线:\n");

}

//申请空间

rect = malloc(size * sizeof (int) * size * sizeof (int));

if (rect == NULL) {

printf("严重错误:申请内存失败。

\n");

return 1;

}

//初始化rect

for (i = 0; i < size; i++) {

for (j = 0; j < size; j++) {

*(rect + i * size + j) = 0;

}

}

//建立螺旋线

insert(size);

//显示螺旋线

display(size);

//释放空间

free(rect);

return 0;

}

建议你以后注意在关键代码处写上注释。

[展开]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值