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.
Soluções para a tarefa
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.
chama no whats 5518981253917
faço por um valor bom e justo, e te envio rapidamente