• Matéria: Informática
  • Autor: aderaldojr0
  • Perguntado 3 anos atrás

Faça um programa que leia uma matriz de tamanho 5 × 5. Calcule e imprima a soma dos elementos dessa matriz que não pertencem à diagonal principal nem à diagonal secundária.


semac54576: faço seus códigos e atividades de programação em C
chama no whats 5518981253917
faço por um valor bom e justo, e te envio rapidamente

Respostas

respondido por: marcorezonmoura1
0

Resposta:

int main(int argc, const char * argv[]) {

   int m [5] [5], i , j, soma = 0;

   for (i = 0; i < 5; i++) {

       for (j = 0; j < 5; j++) {

           m [j] [i] = i + j;// aqui eu improvisei a atribuição para nao dwdggigitar//

       }

   }

   for (i = 0; i < 5; i++) {

       for (j = 0; j < 5; j++) {

           if (j != i && 4 - i != j ){

               printf ("%d ", m [i] [j]);

               soma += m [i] [j];

           }else{

               printf("0 ");

           }

       }

       printf("\n");//ele irá pular de linha sempre que uma nova linha começar

   }

   printf("A SOMA DOS NÚMEROS DIGITADOS É %d\n", soma);

   return 0;

Explicação:

SE i (linha) FOR IGUAL A j (coluna) ESSE VALOR ESTARÁ NA DIAGONAL PRINCIPAL, PORTANTO PARA NÃO DIGITAR ESSE VALOR, NÓS VAMOS MOSTRAR SOMENTE OS DIFERENTES, POR ISSO j != i (j deve ser diferente de i).

//* O 4 REPRESENTA A ÚLTIMA COLUNA DA MATRIZ ((5-1)0,1,2,3,4 = 5), SE VOCE SUBTRAIR O VALOR DA ULTIMA LINHA DA COLUNA (no caso 4) POR i (Linha, que pode ser 0,1,2,3,4) VOCE VAI TER UMA QUEDA GRADUAL DE UMA CASA DA ÚLTIMA COLUNA DA PRIMEIRA LINHA ATÉ A PRIMEIRA COLUNA DA ULTIMA LINHA.

SE J (coluna) FOR DIFIRENTE DE 4 - i ELE IRÁ PRINTAR NORMALMENTE. COLOQUEI O ELSE PARA ELE PRINTAR 0 QUANDO O IF NAO for acionado pra dar uma ideia gráfica de como funciona. É muito complicado de explicar porque eu não domino esse pensamento direito.

   

Perguntas similares