C++贪吃蛇矩阵求解!(请仔细阅读!)

(C++题目)
题目描述:
在数字矩阵中,存在着一种名叫贪吃蛇矩阵的结构,它的原理是这样的:矩阵固定从最左上角开始且一定为1,依次向后赋值,每一次赋值的数都比上一次多1。当前行赋值完毕以后,反向顺序赋值下一行,重复这个步骤,直到矩阵赋值完成。此时的矩阵称为贪吃蛇矩阵。现请你设计一个程序,输入贪吃蛇矩阵的长和宽,输出这个贪吃蛇矩阵。

输入描述
1行,包含2个数n,m,代表贪吃蛇矩阵的长和宽。

输出描述
n行,每行包含m个数,代表贪吃蛇矩阵中的每一个数。

输入样例:
3 3
输出
1 2 3
6 5 4
提示
对于100%的数据,3<=n,m<=50。

运用知识点:二维数组
求本题中输出的思路!
(此题和网上的贪吃蛇矩阵不太一样,网上的是(螺旋矩阵):
1 2 3
8 9 4
7 6 5
而本题是(贪吃蛇(叠加S形)矩阵:
1 2 3
6 5 4
7 8 9

本人只能编到这里了:

#include 
using namespace std;

int main()
{
    int n,m;
    cin >> n >> m;
    int ans = 1,cnt = 0;
    int a[n][m];
    for (int i = 0;i < n;i++)
    {
        for (int j = 0;j < m;j++)
        {
            if(cnt == n || cnt == m)
            {
                break;
            }
            a[i][j] = ans;
            ans++;
            cnt++;
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

(编辑器:Dev-C++ 5.11)

你可以设一个k,如果是单数行那么k=1,如果是单数行那么k=-1,然后每次让横坐标加k。
代码:

#include <bits/stdc++.h>
using namespace std;
int k=1,x,n,m,s=1,a[1000][1000];
int main() {
  cin>>n>>m;
  for(int i=1; i<=n; i++) {
    for(int j=1; j<=m; j++) {
      x+=k;
      a[i][x]=s;
      s++;
    }
    x+=k;
    k*=-1;//单数为1,双数为-1
  }
  for(int i=1; i<=n; i++) {
    for(int j=1; j<=m; j++)cout<<a[i][j]<<" ";
    cout<<endl;
  }
  return 0;
}

可能有点复杂,但还是求题主点个采纳+关注~

谢谢各位,本人已经做出来了:

#include <iostream>
using namespace std;
int main()
{
    int a[60][60],cnt = 1;
    bool flag = true;
    for (int i = 0;i < n;i++)
    {
        if(flag == true)
        {
            for (int j = 0;j < m;j++)
            {
                a[i][j] = cnt;
                cnt++;
            }
        }
        else
        {
            for (int j = m-1;j > -1;j--) //等价于for (int j = m-1;j >= 0;j--) 
            {
                a[i][j] = cnt;
                cnt++;
            }
        }
        flag = (!flag);
    }
    for (int i = 0;i < n;i++)
    {
        for (int j = 0;j < m;j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^