Ir ao conteúdo
  • Cadastre-se
Criticall

C++ questao de uma matriz

Recommended Posts

Faça um programa que preencha uma matriz 3x3 e imprima a
soma de todos os elementos de sua diagonal principal. Utilize
estruturas de repetição.
- Ex. de saída:
2 4 6
3 5 1
9 7 8
Resultado: 15

adicionado 12 minutos depois

#include<stdio.h>

int main(){

int mat[3][3],i,j;

for(i=0; i<3; i++){
    for(j=0; j<3; j++){
        printf("Digite os valores da matriz");
        scanf("%d", &mat[j]);
    }
}
for(i=0; i<3; i++){
    for(j=0; j<3; j++){
    
    printf("%d", mat[j]);
}
printf("\n");
}

}

 

tenho esse codigo mas n sei como somar a diagonal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Soma dos elementos na Diagonal Principal da Matriz

Dada uma matriz, a posição de um elemento da matriz A(mxn) é a correspondência dos índices (i, j) do elemento na matriz, de maneira bem resumida.

 

Exemplificando: 

         a11 a12 a13 | 2 4 6
         a21 a22 a23 | 3 5 1
         a31 a32 a33 | 9 7 8

 

Na teoria da álgebra linear a diagonal principal é composta pelos elementos que unem os valores do extremos: superior esquerdo e inferior direito. Assim temos:

D. Principal= { aij : i, j = (0, 0) até que i, j = (m, n) }  tais que i = j;

 

Ou seja a Diagonal Principal e o subconjunto de elementos da Matriz em que todos elementos tem índices (i, j) iguais;

         a11 a12 a13 | 2 4 6
         a21 a22 a23 | 3 5 1
         a31 a32 a33 | 9 7 8

 

****[ ! ]

Então com apenas um loop percorremos os índices gêmeos (i = j) da diagonal principal, a medita que somamos os valores do em seus elementos.

***************************************************

Dúvida, perguntas ou críticas?

 

ATUALIZADO:

soma_diagonal_principal_c.c

Spoiler

/* programa ANSI C ---calculadora da D. principal M3x3                    *
 * enconding: window-1252, compiler: gcc version 5.1.0 (tdm64-1)          *
 * editor: codelite 12.0.3 - 2018, file: soma_diagonal_principal_c.c      *
 * ver: 1.0.0                                                             */
 
#include <stdio.h>
int main(void)
{
  int matriz[3][3];
  int soma;
  
  soma = 0;  /* ---guarda o somatório da diagonal principal               */

/*  ENTRADA DE DADOS                                                      */ 
  printf("%s","*** Calculadora da D. Principal M3x3 ANSI C\n");
  printf("%s","Por favor informe de 3 em 3 valores inteiros?\n\n");
  for (int i = 0; i < 3; i += 1) {
  
    printf("%sa%d%d a%d%d a%d%d%s","[", i + 1, 1, i + 1, 2, i + 1, 3, "]: ");
    scanf(" %d%d%d", &matriz[i][0], &matriz[i][1], &matriz[i][2]);
  }
  
/* PROCESSAMENTO DE  DADOS                                                */
  for (int ij = 0; ij < 3; ij += 1) {
    
    soma += matriz[ij][ij];
  }
  
/* RESULTADO                                                              */
  printf("%s %d\n", "Soma:", soma);
  return 0;
}

 

 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 minutos atrás, Criticall disse:

valeu depois eu pensei direito e consegui fazer XD

Poderia postar como revolveu para que outros com mesma dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>

int main()
{
    int MAT[3][3], R;
    int i, j;
        
    for(i=0; i<3; i++){
        for(j=0; j<3; j++){
            printf("Digite um número\n");
            scanf("%d", &MAT[j]);
        }
    }
     for(i=0; i<3; i++){
        for(j=0; j<3; j++){
    R = MAT[0][0] + MAT[1][1] + MAT[2][2];
    ^  
    printf("A soma das diagonais dessa matriz é %d", R);
}
}
} 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi bom ter pedido porque está muito errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre:

51 minutos atrás, Criticall disse:

#include <stdio.h>

int main()
{
    int MAT[3][3], R;
    int i, j;
        
    for(i=0; i<3; i++){
        for(j=0; j<3; j++){
            printf("Digite um número\n");
            scanf("%d", &MAT[j]);
        }
    }
     for(i=0; i<3; i++){
        for(j=0; j<3; j++){
    R = MAT[0][0] + MAT[1][1] + MAT[2][2];
    ^  
    printf("A soma das diagonais dessa matriz é %d", R);
}
}
} 

 

- Você está efetuando a mesma soma 9 vezes;

- Está também exibindo a resposta 9 vezes;

 

Poderia fazer algo assim:

#include <stdio.h>

int main()  {
    int MAT[3][3], R=0;
    int i, j;
        
    for(i=0; i<3; i++) {
        for(j=0; j<3; j++) {
            printf("Digite um numero a%d%d\n",i,j);
            scanf("%d", &MAT[i][j]);
        }
    }
    R = MAT[0][0]+MAT[1][1]+MAT[2][2];
    printf("A soma das diagonais dessa matriz e %d",R);
} 

ou

    for(i=0; i<3; i++)
        R += MAT[i][i];        

 

 

Seria interessante imprimir a matriz na tela... dá uma representação visual da matriz...

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

×