gpt4 book ai didi

c++ - 如何在使用 2D 数组 C++ 时将排序对转换为 3x3 矩阵

转载 作者:行者123 更新时间:2023-11-28 01:22:42 27 4
gpt4 key购买 nike

我正在尝试将一对有序数字转换为 3x3 矩阵,但在编写转换时遇到了问题。

我已经尝试了多种嵌套 for 循环的变体来解决这个问题,但我没有得到想要的结果。

这是我目前的尝试:

  for(i = 0; i < 6; i++) {
row = matrixAin[i][0];
col = matrixAin[i][1];

for(j = 1; j <= row; j++) {
for(int k = 1; k <= col; k++) {
matrixA[j][k] = 1;
}
}
}

这是我所有的代码:

  #include <iostream>
using namespace std;

int main() {

int matrixAin[6][2]; // ordered pair of Matrix A
int matrixA[3][3]; // 3x3 matrix of Matrix A
int i, j, row, col; // for the for loops

// Sets Matrix A & B values to 0
for (i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
matrixA[i][j] = 0;
matrixB[i][j] = 0;
}
}

// input of Matrix A
cout << "Please input the ordered pairs for matrix A: ";
for (i = 0; i < 6; i++) {
cin >> matrixAin[i][0] >> matrixAin[i][1]; // row , col
}

// sets row / col to 1 for Matrix 3x3
// this is the code with the issue
for(i = 0; i < 6; i++) {
row = matrixAin[i][0];
col = matrixAin[i][1];

for(j = 1; j <= row; j++) {
for(int k = 1; k <= col; k++) {
matrixA[j-1][k] = 1;
}
}
}

// Displays matrix A
cout << "A= ";
for(int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << matrixA[i][j] << ' ';
}
cout << endl;
}

}

这个矩阵的输入应该是这样的

请输入矩阵A的有序对:

1 2

1 3

2 1

2 2

3 2

3 3

这是预期的结果:

一个=

0 1 1

1 1 0

0 1 1

最佳答案

您当前的代码接受每一对,然后对于大小为 row x col 的每个子矩形,将矩形的面积设置为 1。它非常接近。您只需为每个有序对设置一次:

for(i = 0; i < 6; i++) {
row = matrixAin[i][0];
col = matrixAin[i][1];
matrixA[row - 1][col - 1] = 1;
}

关于c++ - 如何在使用 2D 数组 C++ 时将排序对转换为 3x3 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55389438/

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