Ir ao conteúdo
  • Cadastre-se
Mateus Nunes

Matrizes

Recommended Posts

Pessoal, alguém sabe como ficaria a condição para verificar se a diagonal principal da matriz é igual a secundária??

O que eu fiz não está correto. O problema está no final, acredito....

Obrigado!

#include <stdio.h>
#include <locale.h>
#define nlin 2
#define ncol 2
main()
{
int mat[nlin][ncol],col,lin,diag_p[nlin],diag_s[nlin],k=0,aux=0;

setlocale(LC_ALL,"portuguese");


printf("Informe %d valores: ",nlin*ncol);
for(lin=0;lin<=nlin-1;lin++)
{
for(col=0;col<=ncol-1;col++)
    {
    scanf("%d",&mat[lin][col]);
    }
}

system("pause");
system("cls");

printf("Valores armazenados na matriz:\n\n");
for(lin=0;lin<=nlin-1;lin++)
{
for(col=0;col<=ncol-1;col++)
    {
    printf("%d\t",mat[lin][col]);
    }
printf("\n");
}

//DIAGONAL PRINCIPAL
for(lin=0;lin<=nlin-1;lin++)
{
for(col=0;col<=ncol-1;col++)
    {
    if(lin==col){diag_p[k]=mat[lin][col];k++;}
    }
}

printf("\nDiagonal Principal:\n\n");
for(k=0;k<=lin-1;k++)
{
printf("%d\t",diag_p[k]);
}

//DIAGONAL SECUNDÁRIA
k=0;
for(lin=0;lin<=nlin-1;lin++)
{
for(col=0;col<=ncol-1;col++)
    {
    if(lin==nlin-1-col){diag_s[k]=mat[lin][col];k++;}
    }
}

printf("\n\nDiagonal Secundária:\n\n");
for(k=0;k<=lin-1;k++)
{
printf("%d\t",diag_s[k]);
}

//TESTE
for(k=0;k<=lin-1;k++)
{
if(diag_p[k]==diag_s[k]){aux=1;}
}

if(aux=1){printf("\n\nAs diagonais são iguais!");}
else {printf("\n\nAs diagonais são diferentes!");}


printf("\n\n\nFim da Programação!!!!");
printf("\n\n\n\n");
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

@Mateus NunesBoa tarde,

A matriz é necessariamente uma Matriz (i ,j) 2x2?

Sim, então: Na condição de (diag. Principal ==  diag. Segundaria) é preciso que todos os elemento sejam iguais.

 

Prof. Mauro Britivaldo Matriz.jpg

47 minutos atrás, Mateus Nunes disse:

 

Cara, na verdade, eu só usei o define pra não entrar com tantos valores toda hora. Tu tá querendo dizer que para cada ordem, a condição muda?

Desculpa se eu não entendi....

 

De maneira alguma, ---Não, mesmo! Porém se o problemas estivesse em uma matriz quadrada  de ordem 2, o solução é simples.

 

A matriz é necessariamente uma Matriz (i ,j) quadrada?

Quero dizer que i será sempre igual a j.

Mauro Britivaldo Matriz(4x4).jpg

47 minutos atrás, Mateus Nunes disse:

Sim, matriz quadrada!

 

No esquema acima é possível determinarmos alguns noções, duas noções na verdade. Logo a seguir estão estas noções:

  • x = j = i, logo x é tanto a linha(i), quanto coluna(j): se x = 0, incrementamos x 1 a 1 descolaremos i, j simultaneamente, com isso teremos a diagonal principal.
  • No instante do começo do laço i = 1, j = 4, no segundo instante do laço i = 2, j = 3. logo notamos que para cada incremento de i, existe um decremento de j, com isso teremos a diagonal segundaria.

 

O código

//Mauro Britivaldo
#include <stdio.h>
int main( void )
{
  int Matrix[2][2] = {
          { 2, 2 },
          { 2, 3 }};

 int i,j,x;
  x = 0, i = 0, j = 1;

 for( ; x < 2 ;x++, i++, j-- )
 {
   printf( "%d == %d? %s\n",
          Matrix[x][x],   Matrix[i][j],
          Matrix[x][x] == Matrix[i][j]? "SIM":"NAO");
 }
 return 0;
 
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, na verdade, eu só usei o define pra não entrar com tantos valores toda hora. Tu tá querendo dizer que para cada ordem, a condição muda?

Desculpa se eu não entendi....

adicionado 39 minutos depois

Sim, matriz quadrada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×