您的位置:首页 > 其它

打印螺旋排列的数字

2012-09-26 15:03 141 查看
/*

* 演示多维(二维)数组的使用

* 在标准输出设备上打印螺旋数字

*

*/

#include<stdio.h>

int main(void)

{

int n, m, i, j, side = 0, k = 0, num = 1;

printf("请输入每行所要打印的数字的个数:");

scanf("%d", &n);

int a

;

//printf("%d\n", n);

for(m = n-1; m > 0; m = m-2)

{

if(side == 0)

{

for(i = 0; i < m; i++)

a[k][i+k] = num++;

}

side = (side+1)%4;

if(side == 1)

{

for(i = 0; i < m; i++)

a[i+k][n-1-k] = num++;

side = (side+1)%4;

}

if(side == 2)

{

for(i = 0; i < m; i++)

a[n-1-k][n-1-i-k] = num++;

side = (side + 1)%4;

}

if(side == 3)

{

for(i = 0; i < m; i++)

a[n-1-i-k][k] = num++;

side = (side + 1)%4;

}

k++;

}

if((n%2) == 1)

a[n/2][n/2] = n*n;

char * space = NULL;

for(i = 0; i < n; i++)

{

for(j = 0; j < n; j++)

{

space = a[i][j] > 9 ? " ":" ";

printf("%d%s", a[i][j], space);

}

printf("\n");

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐