いくつかの条件によっては、3つの異なる行列内の特定の位置(i、j)の値を(intで)掛けようとしています。私は、全体の行列を印刷するときしかし、すべてint型二と第三の行列のための(偶数のものによる最初の1を乗じだと思われ互いに上書きされる行列
ここで私は、グローバル行列を宣言し、いくつかのメモリ割り当てを含む属性:。
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';
}
私はmatrixB[i][j]
を取得していますmatrixR[i][j]*1
を取得する必要があります。行列が互いに上書きされていますか?どうかしましたか?
Good writt質問です。 :) – MordechayS
'matrixR [i] [j] = matrixR [i] [j] * 1;のポイントは何ですか? –
行列の値を初期化しましたか? –