Copiar matriz bidimensional a otra matriz bidimensional.
Estoy tratando de crear un programa en C que copie los números de una matriz 2D a otra, pero específicamente como se muestra en la imagen.
Código:
int main(){
int numbers[6][8] = {
{1,1,1,1,1,1,1,1},//0
{2,2,2,2,2,2,2,2},//1
{3,3,3,3,3,3,3,3},//2
{4,4,4,4,4,4,4,4},//3
{5,5,5,5,5,5,5,5},//4
{6,6,6,6,6,6,6,6} //5
};
int output[2*8][3];
for(int i = 0; i < 3; i++){
for(int j = 0; j < 2*8; j++){
output[j][i] = numbers[i][j];
}
}
for(int j = 0; j < 2*8; j++){
for(int i = 0; i < 3; i++){
printf("%d ", output[j][i]);
}
printf("\n");
}
}
Mi resultado:
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
2 3 4
2 3 4
2 3 4
2 3 4
2 3 4
2 3 4
2 3 4
2 3 4
Pero es incorrecto.
La salida debería ser la siguiente:
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
4 5 6
4 5 6
4 5 6
4 5 6
4 5 6
4 5 6
4 5 6
4 5 6
El problema es que en mi salida en la segunda parte tengo números de las filas 1, 2 y 3 (de la matriz numbers). Pero debía ser la fila 3, 4 y 5.
davy.ai
Para solucionar el problema, actualice los bucles anidados for para iterar sobre las filas y columnas de la matriz de números que desea copiar en la matriz de salida. Aquí hay una versión actualizada del código que debería producir la salida deseada:
Este código primero copia las filas 0-2 de la matriz de números en las columnas 0-2 de la matriz de salida, y luego copia las filas 3-5 de la matriz de números en las columnas 3-5 de la matriz de salida. El resultado de la salida debería ser igual a la salida deseada mostrada en el tutorial.