⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.c

📁 用数据结构实现 螺旋数组 他分为东西南北4个方向 进行检测
💻 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 + -