Ir ao conteúdo

Posts recomendados

Postado

gente alguém pode ler  o meu codigo criei essa solução mas acho que não e a correta, alguém pode ler o meu codigo e corrigir e me explicar a logica para resolver o problema.

essa e a pergunta do exercício:

 

/*2. Leia uma matriz 4 x 4 e troque os valores da 1ª linha pelos da 4ª coluna, vice-e-versa. Escrever ao
final a matriz obtida.
*/

#include <stdio.h>

int main()
{

    int mat[4][4]={1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4}, aux;

    printf("matriz original\n");

    for (int i = 0; i < 4; ++i)
    {
        for (int j = 0; j < 4; ++j)
        {
            printf("%d ", mat[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    
    for (int i = 0;;)
    {
        for (int j = 3;;)
        {
            for (int k = 0, l = 3;k < 4 && l >= 0; k++, l--)
            {
                aux = mat[i][k];
                mat[i][k] = mat[l][j];
                mat[l][j] = aux;
            }
            break;
        }
        break;
    }
    
    printf("nova matriz\n");

    for (int i = 0; i < 4; ++i)
    {
        for (int j = 0; j < 4; ++j)
        {
            printf("%d ", mat[i][j]);
        }
        printf("\n");
    }


    return 0;
}

  Leia uma matriz 4 x 4 e troque os valores da 1ª linha pelos da 4ª coluna, vice-e-versa. Escrever ao
final a matriz obtida.

  • Amei 1
Postado

Em téoria você teria que ter variáveis com as linhas e \ ou colunas originals e os novos valores. Salva os valores originais em variáveis, pega os valores da linha 1 e coluna 4 e vai substituindo os respectivos valores:

Ex ALinha = Antiga Linha | NLinha= Nova Linha

 

ALinha1_1=A

ALinha1_2=B

ALinha1_3=C

ALinha1_4=D

 

ALinha2_1=E

ALinha2_2=F

ALinha2_3=G

ALinha2_4=H

 

ALinha3_1=I

ALinha3_2=J

ALinha3_3=K

ALinha3_4=L

 

ALinha4_1=M

ALinha4_2=N

ALinha4_3=O

ALinha4_4=P

 

Aqui está salvando os valores da coluna 4 em novas variáveis:

NLinha1_1=ALinha1_4 

NLinha1_2=ALinha2_4

NLinha1_3=ALinha3_4

NLinha1_4=ALinha4_4

 

Aqui está salvando os valores da linha 1 em novas variáveis:

NLinha1_4=ALinha1_1

NLinha2_4=ALinha1_2

NLinha3_4=ALinha1_3

NLinha4_4=ALinha1_4

 

O restante dos valores que não são alterados você deixa igual por exemplo:

NLinha2_1=ALinha2_1

NLinha2_2=ALinha2_2

NLinha2_3=ALinha3_3

 

Ai é só criar uma nova matriz com as novas variáveis...

 

image.png.80d5d7e5f2cdb1a2f53030ba4171d05a.png

  • Amei 1
Postado

@Edinei Almeida @Edinei Almeida    apesar de seu código não estar compilando pois você não criou a variável  "l"   ,   e corrigindo isso funciona ,    porém  tem uma pegadinha aí , por que não se pode colocar esses quatro números da linha na coluna , pois o último número da linha é o mesmo primeiro número  da coluna ,  e sendo assim , creio que seria melhor pegar do segundo número da coluna em diante e seu código mais simplificado poderia ser assim  :

/*2. Leia uma matriz 4 x 4 e troque os valores da 1ª linha pelos da 4ª coluna, vice-e-versa. Escrever ao
final a matriz obtida.
*/
#include <stdio.h>
int main()
{
  int mat[4][4] = {
    1,2,3,4,
    1,2,3,4,
    1,2,3,4,
    1,2,3,4 };
  int aux = 0;
  int i   = 0;
  int j   = 0;
  int l   = 0;
  int k   = 0;
  printf("matriz original\n");
  for ( i = 0; i < 4; ++i)
  {
    for ( j = 0; j < 4; ++j)
    {
      printf("%d ", mat[i][j]);
    }
    printf("\n");
  }
  printf("\n");
  for(i=0; i<3; i++)
  {
    aux       = mat[0][i];
    mat[0][i] = mat[i][3];
    mat[i][3] =       aux;
  }
  printf("nova matriz\n");
  for ( i = 0; i < 4; ++i)
  {
    for ( j = 0; j < 4; ++j)
    {
      printf("%d ", mat[i][j]);
    }
    printf("\n");
  }
  return 0;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!