gpt4 book ai didi

c++ - 替换二维数组中的值

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:00 25 4
gpt4 key购买 nike

我必须创建一个允许用户填写(部分)4 阶拉丁方的程序。您可以使用 0 来表示空单元格。用户将给出要放置的数字、行和列。仅当数字不违反部分拉丁方的属性且不应重写已放置的数字时,才应放置该数字。

我有一个输出全为零的矩阵。所以接下来我必须用用户输入的内容替换这些值中的每一个。问题是我不知道该怎么做。

这是我的代码:

#include <iostream>
using namespace std;

const int ORDER = 4;
void fill (int m[], int order);
void outputMatrix (int m[], int order);
void replaceValue (int m[], int order, int n, int row, int column);

int main(){
int matrix[ORDER];
int row;
int column;
int n;
fill (matrix, ORDER);
outputMatrix (matrix, ORDER);
do {
cout << "Enter the number to place, the row and the column, each seperated by a space: ";
cin >> n;
cin >> row;
cin >> column;

}while (n > 0 || n <= ORDER);
if (n <= 0 || n >= ORDER){
cout << "Thank you";
cout << endl;
}

return 0;
}


void fill (int m[], int order){
for (int i = 0; i < order*order; i++){
m[i] = 0;
}
}

void outputMatrix (int m[], int order){
int c = 0;
for (int i = 0; i < order*order; i++){
c++;
cout << m[i] << ' ';
if (c == order){
cout << endl;
c = 0;
}
}
cout << endl;
}

void replaceValue (int m[], int order, int n, int row, int column){
for (int i = 0; i < order; i++){
m[order] = m[row][column];
m[row][column] = n;
}
}

如何用 C++ 替换矩阵中的值?

最佳答案

如果你有一个矩阵,matrix[row][col] = value;会成功的。但是,我看到您分配了一个数组。请务必查看此内容。

编辑:

我仔细查看了您的代码,发现您做错了一些事情。

首先:矩阵[订购]将创建单个 ORDER 值数组。如果你想要和 ORDER by ORDER 矩阵尝试:矩阵[ORDER][ORDER]

第二个:您正在调用:

void fill (int m[], int order){
for (int i = 0; i < order*order; i++){
m[i] = 0;
}
}

大小为 4 且顺序 == 4。这将在数组外循环并给您带来问题。

尝试这样的事情:

matrix[ORDER][ORDER];
for (int row = 0; row != ORDER; ++row)
{
for (int col = 0; col != ORDER; ++col)
{
matrix[row][col] = 0;
}
}

希望这对您有所帮助。

关于c++ - 替换二维数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821146/

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