-
我会告诉你,如果你能考虑一下。
由于它是“纸张遍历”,这意味着数组中的每个元素都以螺旋顺序输出。 因此,在执行后,每个元素应该输出一次。 我的想法是定义另一个变量 time,它用于将输出的数量相加(其初始值为 0),每次执行输出时将时间值增加 1,当所有元素都输出时,时间的值变为 row*col(您输入的数组中的元素数)。
在这种情况下,编写一个语句 if(time==row*col)break; 退出循环。 这只是我的想法。 我还没有想出更简单的东西。
这是我根据你写的**:(你的**可能在某个地方粘错了,我纠正了它)
#include
int main()
int row,col;
int i,j,n,time=0;
scanf("%d%d",&row,&col);
int array[100][100];
for(i=0;i=n;i--)
printf("%4d",array[row-n-1][i]);
time++;
printf("");
if(time==row*col)break;
for (j=row-2-n;j>n;j--)printf("%4d",array[j][n]);
time++;
printf("");
if(time==row*col)break;
return 0;
注:in for (n=0;; n++),有四个平行的循环结构。
我会补充! 如果你对我心中的那些地方有疑问,请打个招呼! 随时恭候你!
-
#include
using namespace std;
#define none -1
#define right 0
#define down 1
#define left 2
#define up 3
#define direction_size 4
int direction_xy[4][2] = ,int main()
int row, col;
int i, j;
int a[101][101] = ;
int flag[101][101] = ;
cin >>row >>col;
for(i = 0; i < row;i++)
for(j = 0; j < col;j++)
cin >>a[i][j];
init the direction and the position
int direction = right;向右。
i = j = 0;// 0,0
while( direction != none)
cout if(j < 1 ||flag[i][j-1])
direction_change[left]++
if(i < 1 ||flag[i-1][j])
direction_change[up]++
if(i > row-2 ||flag[i+1][j])
direction_change[down]++
int tmp = direction;
获取下一个点的坐标。
while(tmp != direction_size + direction)
if(direction_change[tmp % direction_size])
tmp++;
continue;
i += direction_xy[tmp % direction_size][0];
j += direction_xy[tmp % direction_size][1];
break;
如果四个方向都没有出路,就没有出路。
if(tmp == direction_size + direction)
direction = none;
elsedirection = tmp % direction_size;
-
这是螺旋矩阵的问题,我在这里有一个简单的**包括
#define n 100
main()
for(i=0;i
-
您的数组未初始化,输出时未赋值。
-
#include
using namespace std;
int main()
初始化。 for(int i=0;i<3;i++) 数组不越界 {for(int j=0;} j<4;j++) 数组不会越界 {cout<
-
哈哈,房东,同学们。 我今天刚留下的作业。
#include
int main()
for(p=0;pelsecontinue;
return 0;
-
#include
using namespace std;
typedef int intaray[4];
void print(intaray *data,int m,int n)
coutreturn 0;
对角线输出,4*4矩阵。 作为参考,输出主要基于对角线下标和等于。
-
C++ 不能返回二维数组。
二维数组实际上是数组的数组,因此指向二维数组的指针是指向数组的指针。 考虑到这一点,选择返回类型很简单。 >>>More
这显然是一个二维数组,二维数组可以看作是一维数组,for(i = 0; ifor(j = 0; j < n; j++)printf("%d",a[i][j) >>>More
new 是 C++ 中动态应用于堆内存的函数。
如果你想在 C 语言中使用 malloc,它包含在头文件 stdlib 中。 >>>More