Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Soma de elementos de uma matriz


Henrike

Pergunta

Estou com uma duvida,

tenho um programa como exercicio da faculdade, que deve receber valores do usuario para preencher a mtriz somar os valores dela, e somar os valores da diagonal, até somar todos os valores dela beleza, agora somar os valores da diagonal ta complicado, ele chega a rodar mas na hora de impimir o resultado da soma da diagonal ele imprimi lixo eletrôni

abf

co.

O código esta assim:

#include <stdio.h>
#include <stdlib.h>
#define linha 3
#define coluna 3

int matriz[linha][coluna];

int main()
{
    int li, co, result=0, result2;

    for(li=0; li<linha; li++)
    {
        for(co=0; co<coluna; co++)
        {
            printf("Digite os valores: ");
            scanf("%i", &matriz[li][co]);
            result=result+matriz[li][co];
        }
    }

    printf("\n\nA soma dos valores: %d\n", result);

    result2=matriz[1][1]+matriz[2][2]+matriz[3][3];
    printf("A soma da primeira diagonal: %d\n\n", result2);

    system ("pause");

}
Não sei se esta correto a forme em que expressei a soma: result2=matriz[1][1]+matriz[2][2]+matriz[3][3] me surgiu mais uma duvida também, quando eu vou receber os valores na matriz, ele armazena primeiramente pela coluna ou pela linha?
for(li=0; li<linha; li++)
    {
        for(co=0; co<coluna; co++)
        {
            printf("Digite os valores: ");
            scanf("%i", &matriz[li][co]);
            result=result+matriz[li][co];
        }
    }

Abraço

Editado por Henrike
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá Henrike,

O problema do lixo eletrônico está na seguinte linha:

result2=matriz[1][1]+matriz[2][2]+matriz[3][3];
o erro está no fato de que as posições de um array, sempre começam com o índice 0, então deveria ser:
result2=matriz[0][0]+matriz[1][1]+matriz[2][2];
Se quiser tornar o código mais dinâmico e versátil, poderia fazer um loop, para pegar os valores da diagonal principal, (repare que na diagonal principal, o índice da linha e colunas são iguais):
result2 = 0;        //inicializando a variavel acumulativa da soma
for(i=0; i<coluna && i<linha; i++)         //enquanto estiver dentro dos limites da matriz
         result2 = result2 + matriz[i][i];            //acessando todos os elementos da diagonal principal

Espero ter ajudado,

Qualquer coisa, só perguntar novamente

Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...