📄 a.c
字号:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int n=0,m; //n:做++运算, m:最后一个数的值
int i=0,j=0; //数组的坐标
int fx=1; //下:1,右:2,上:3,左:4
int hang; //要输出的边长
int **a; //为定义一个数组所用
printf("输入一个数:");
scanf("%d",&hang);
m=hang*hang;
a=(int **)malloc(sizeof(int)*hang); //初始列
for(i=0;i<hang;i++)
{
a[i]=(int *)malloc(sizeof(int)*hang); //初始行
}
for(i=0;i<hang;i++)
{
for(j=0;j<hang;j++)
{
a[i][j]=0;
}
}
i=j=0;
////////////////////////////////////////////////////////////////
while(n!=m)
{
n++;
if(fx==1) //向下
{
a[i][j]=n;
i++;
if(i>=hang ||a[i][j]!=0)
{
fx++;
i--;
j++;
}
continue;
}
else if(fx==2) //向右
{
a[i][j]=n;
j++;
if(j>=hang||a[i][j]!=0)
{
fx++;
j--;
i--;
}
continue;
}
else if(fx==3) //向上
{
a[i][j]=n;
i--;
if(i<0||a[i][j]!=0)
{
fx++;
i++;
j--;
}
continue;
}
else if(fx==4) //向左
{
a[i][j]=n;
j--;
if(j<=0 ||a[i][j]!=0)
{
fx=1;
j++;
i++;
}
continue;
}
}
///////////////////////////////////////////////////////////////////
for(i=0;i<hang;i++)
{
for(j=0;j<hang;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -