首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用一个C++向左移动矩阵的所有列

用一个C++向左移动矩阵的所有列
EN

Stack Overflow用户
提问于 2022-02-15 20:38:34
回答 3查看 245关注 0票数 0

我的问题是取一个矩阵mat of rowcol长度,并将其中的每一列向左移动一个位置。例如,如果我有这样一个3x3矩阵:

代码语言:javascript
复制
4 5 2
6 7 3 
3 4 6

结果必须是这样:

代码语言:javascript
复制
5 2 4
7 3 6
4 6 3

我不能让这个方法起作用,我做了多少次了,有人有什么想法吗?

下面是我的代码:

代码语言:javascript
复制
for(int i = rowcol - 1; i > 0; i--)
            for(int j = 0; j < rowcol; j++) {
                if(i == 0) swap(mat[j][rowcol - 1], mat[j][i]);
                swap(mat[j][i], mat[j][i-1]);
            }
EN

Stack Overflow用户

发布于 2022-02-15 21:37:21

,这是我更新的解决方案,,比我几分钟前发布的那个更简单。

基本上,对于每一行:

  • 保存第一列中的值
  • 将行中的所有值(从第1列开始)向左移动。
  • 行中的最后一个值是前面从第一步保存的变量。

代码:

代码语言:javascript
复制
for (size_t row = 0; row < rowcol; row++) {
   int tmp = mat[row][0];
   for (size_t col = 1; col < rowcol; col++) {
       mat[row][col-1] = mat[row][col];
   }
   mat[row][rowcol-1] = tmp;
}
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71133093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档