gpt4 book ai didi

c++ - 如何复制矩阵?

转载 作者:行者123 更新时间:2023-11-28 03:20:48 25 4
gpt4 key购买 nike

我需要将已设置为 M 的矩阵复制到新矩阵 M2 中并输出该矩阵。

如何做到这一点?

到目前为止,这是我尝试过的:

#include <iostream>

using namespace std;
#define N 24
void copy(int M[][N], int M2[][N], int ROWS, int COLS)
{
int r, c;
M2[r][c]= M[r][c];
cout<< M2[r][c];
}

void print(int M[][N], int ROWS, int COLS)
{
int r, c, row, col;
row= 1;
col= 1;
M[row][col] = 2;
for(r=0; r< ROWS; r++)
{
for(c=0; c < COLS; c++)
{
if(M[r][c]==0)
{
cout<<" ";
}
else if (M[r][c]==1)
{
cout<< "T";
}
else if (M[r][c]==2)
{
cout<< "*";
}
else
{
cout << M[r][c];
}
}

cout <<endl;
}
}

void fill(int M[][N], int ROWS, int COLS, int row, int col)
{
int r, c;
for(r=0; r< ROWS; r++)
{
for(c=0; c < COLS; c++)
{
if (r == 0 || r == ROWS - 1) {
M[r][c]=0;
}
else if(c == 0 || c == COLS -1) {
M[r][c]=0;
}
else {
M[r][c]= 1;
}
}
}
}

int main()
{
int M[N/2][N];
int M2[N/2][N];
int ROWS, COLS;
int r, c;
ROWS = sizeof(M) / sizeof(M[0]);
COLS = sizeof(M[0]) / sizeof(M[0][0]);
fill(M, ROWS, COLS, 1, 1);
print(M, ROWS, COLS);
copy(M, M2, ROWS, COLS);

return 0;
}

最佳答案

这里有个问题:

int r, c;
M2[r][c]= M[r][c];

您从未分配过 rc,它们包含一些未知值,很可能在 0..ROWS-1 范围之外和 0..COLS-1

不要使用未初始化的值,尤其是在指针运算中

要复制整个矩阵,您可能需要一些循环,就像在 print 函数中那样。

关于c++ - 如何复制矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15487482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com