使用 C 语言的二维阵列纸张遍历

发布于 科技 2024-06-11
8个回答
  1. 匿名用户2024-01-29

    我会告诉你,如果你能考虑一下。

    由于它是“纸张遍历”,这意味着数组中的每个元素都以螺旋顺序输出。 因此,在执行后,每个元素应该输出一次。 我的想法是定义另一个变量 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++),有四个平行的循环结构。

    我会补充! 如果你对我心中的那些地方有疑问,请打个招呼! 随时恭候你!

  2. 匿名用户2024-01-28

    #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;

  3. 匿名用户2024-01-27

    这是螺旋矩阵的问题,我在这里有一个简单的**包括

    #define n 100

    main()

    for(i=0;i

  4. 匿名用户2024-01-26

    您的数组未初始化,输出时未赋值。

  5. 匿名用户2024-01-25

    #include

    using namespace std;

    int main()

    初始化。 for(int i=0;i<3;i++) 数组不越界 {for(int j=0;} j<4;j++) 数组不会越界 {cout<

  6. 匿名用户2024-01-24

    哈哈,房东,同学们。 我今天刚留下的作业。

    #include

    int main()

    for(p=0;pelsecontinue;

    return 0;

  7. 匿名用户2024-01-23

    #include

    using namespace std;

    typedef int intaray[4];

    void print(intaray *data,int m,int n)

    coutreturn 0;

    对角线输出,4*4矩阵。 作为参考,输出主要基于对角线下标和等于。

  8. 匿名用户2024-01-22

    C++ 不能返回二维数组。

相关回答
19个回答2024-06-11

二维数组实际上是数组的数组,因此指向二维数组的指针是指向数组的指针。 考虑到这一点,选择返回类型很简单。 >>>More

11个回答2024-06-11

这显然是一个二维数组,二维数组可以看作是一维数组,for(i = 0; ifor(j = 0; j < n; j++)printf("%d",a[i][j) >>>More

9个回答2024-06-11

new 是 C++ 中动态应用于堆内存的函数。

如果你想在 C 语言中使用 malloc,它包含在头文件 stdlib 中。 >>>More

16个回答2024-06-11

楼上是什么,我真的受不了了,是一个简单的问题,很复杂。 >>>More

4个回答2024-06-11

我不知道您是否想要矩阵输出格式,但如果是,请使用以下循环。 >>>More