概述
没有使用什么算法,就是简单的逻辑实现。
思路:通过上下左右四个变量的值个适当控制来,顺序的螺旋操作数组元素的值。
代码如下
void func(int left,int right,int up,int down,int V)
{
int i ,j ,k ,l;
if(left<=right) //注意递归的边界是left<=right 不要把if写成while造成死循环
{
for(i = left;i<=right;i++)
array[up][i] = V++;
for(j = up+1;j<=down;j++)
array[j][right] = V++;
for(k = right-1;k>=left;k--)
array[down][k] = V++;
for(l = down-1;l>up;l--)
array[l][left] = V++;
func(left+1,right-1,up+1,down-1,V);//递归调用
}
}
int main()
{
int n,m,i,j;
scanf_s("%d",&n);
printf("n");
func(1,n,1,n,1);
for(i = 1;i<=n;i++)
{
for(j = 1;j<n;j++)
printf("%dt",array[i][j]);
printf("%dn",array[i][j]);
}
printf("n");
return 0;
}
调试结果
最后
以上就是活泼鸡翅为你收集整理的c语言二维数组排序_C语言实现螺旋二维数组的全部内容,希望文章能够帮你解决c语言二维数组排序_C语言实现螺旋二维数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复