Я пытаюсь изменить (умножить на int) значение определенной позиции (i, j) в 3 разных матрицах в зависимости от некоторого условия. Однако, когда я печатаю целые матрицы, кажется, что это умножая первый по всему Интсу (даже те, для второго и третьего матрицМатрицы, переписывающие друг друга
Здесь я объявляю глобальные матрицы и атрибуты, включая некоторое распределение памяти:.
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 ru вопрос. :) – MordechayS
Какова точка 'matrixR [i] [j] = matrixR [i] [j] * 1;'? –
Вы инициализировали значения в своих матрицах? –