我試圖根據某些條件在3個不同的矩陣中改變(乘以int)某個位置(i,j)的值。然而,當我打印整個矩陣似乎它乘以所有整數的第一個(甚至是那些第二和第三矩陣矩陣相互覆蓋
下面我宣佈全球矩陣和屬性,包括一些內存分配。
int HEIGHT;
int WIDTH;
int ** matrixR= new int*[HEIGHT];
int ** matrixG= new int*[HEIGHT];
int ** matrixB= new int*[HEIGHT];
然後,在功能予完成矩陣:
for(i=0; i<HEIGHT; i++){
matrixR[i]= new int[WIDTH];
matrixG[i]= new int[WIDTH];
matrixB[i]= new int[WIDTH];
}
這裏是我評估每個矩陣的條件:
for (int i = 0; i < HEIGHT; ++i) {
for (int j = 0; j < WIDTH; ++j) {
float suma = pow(i - centerY, 2) + pow(j - centerX, 2);
if (suma > pow(radius, 2)) {
matrixR[i][j] = matrixR[i][j] * 1;
}
}
}
for (int i = 0; i < HEIGHT; ++i) {
for (int j = 0; j < WIDTH; ++j) {
float suma = pow(i - centerY, 2) + pow(j - centerX, 2);
if (suma > pow(radius, 2)) {
matrixG[i][j] = matrixG[i][j] * 2;
}
}
}
for (int i = 0; i < HEIGHT; ++i) {
for (int j = 0; j < WIDTH; ++j) {
float suma = pow(i - centerY, 2) + pow(j - centerX, 2);
if (suma > pow(radius, 2)) {
matrixB[i][j] = matrixB[i][j] * 3;
}
}
}
然後,當我打印第一矩陣的元素:
for (int k = 0; k < HEIGHT; ++k) {
for (int i = 0; i < WIDTH; ++i) {
cout << matrixR[k][i] << " | ";
}
cout << '\n';
}
在那裏我應該得到matrixR[i][j]*1
我越來越matrixB[i][j]
。矩陣是否相互覆蓋?有什麼不對的嗎?
Good writt恩問題。 :) – MordechayS
'matrixR [i] [j] = matrixR [i] [j] * 1;'? –
你初始化矩陣中的值了嗎? –