/*
* 演示多维(二维)数组的使用
* 在标准输出设备上打印螺旋数字
*
*/
#include<stdio.h>
int main(void)
{
int n, m, i, j, side = 0, k = 0, num = 1;
printf("请输入每行所要打印的数字的个数:");
scanf("%d", &n);
int a[n][n];
//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;
}
* 演示多维(二维)数组的使用
* 在标准输出设备上打印螺旋数字
*
*/
#include<stdio.h>
int main(void)
{
int n, m, i, j, side = 0, k = 0, num = 1;
printf("请输入每行所要打印的数字的个数:");
scanf("%d", &n);
int a[n][n];
//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;
}