我正在尝试将一对有序数字转换为 3x3 矩阵,但在编写转换时遇到了问题。
我已经尝试了多种嵌套 for 循环的变体来解决这个问题,但我没有得到想要的结果。
Đây là nỗ lực hiện tại của tôi:
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
sử dụng không gian tên std;
int chính() {
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;
}
Tôi là một lập trình viên xuất sắc, rất giỏi!