Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

167
Visualizações
Copie la matriz 2d a otra matriz 2d

Estoy tratando de crear un programa en C que copie números de una matriz 2d a otra, pero específicamente. (ver 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 salida:

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 malo.

La salida debería verse así:

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 el número de las filas 1, 2 y 3 (de la matriz de números). Pero se suponía que eran las filas 3, 4 y 5.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Tienes que tener tus índices correctos :-)

 for (int i = 0; i < 3; i++) { for (int j = 0; j < 16; j++) { output[j][i] = numbers[j / 8 * 3 + i][j % 8]; } }
over 4 years ago · Santiago Trujillo Relatório

0

En base a su código, lo divido en dos casos, y la segunda parte pongo +2 así: output[j][i] = numbers[i+2][j];

 #include <iostream> using namespace std; 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 < 8; j++){ output[j][i] = numbers[i][j]; } } for(int i = 0; i < 3; i++){ for(int j = 8; j < 16; j++){ output[j][i] = numbers[i+2][j]; } } for(int j = 0; j < 2*8; j++){ for(int i = 0; i < 3; i++){ printf("%d ", output[j][i]); } printf("\n"); } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda