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

Prolema com matriz


viciado

Pergunta

Elabore um programa que preencha uma matriz 5x5 e crie dois vetores de cinco posições cada um, que contenham, respectivamente, as somas das linhas e das colunas da matriz. O programa deverá escrever a matriz e os vetores criados

Qual o problema desse codigo não estou entendendo a imprensão dos vetores

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int m[5][5];
  int a[5], b[5];
  int i,j;
  for(i=0;i<5;i++)
      for(j=0;j<5;j++){
                       printf("Preenche M[%d][%d] \n",i,j);
                       scanf("%d",&m[i][j]);
                       }
  for(j=0;j<5;j++){
                   a[0] += m[0][j];
                   a[1] += m[1][j];
                   a[2] += m[2][j];
                   a[3] += m[3][j];
                   a[4] += m[4][j];
                   }
  for(i=0;i<5;i++){
                   b[0] += m[i][0];
                   b[1] += m[i][1];
                   b[2] += m[i][2];
                   b[3] += m[i][3];
                   b[4] += m[i][4];
                   }
  printf("A matriz \n");
  for(i=0;i<5;i++){
      for(j=0;j<5;j++)  printf("%6d",m[i][j]);
      putchar('\n');
                    }
  printf("Soma das linhas \n");
  for(i=0;i<5;i++){
                   printf("%6d",a[i]);
                   }
  printf("\n Soma das colunas \n");
  for(i=0;i<5;i++){           
                   printf("%6d",b[i]);
                   }                                      
  system("PAUSE");    
  return 0;
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Cara, o problema está nos laços de soma.

1) Você não definiu os elementos do vetor que está guardando a soma como zero (antes de começar a somar você tem que definir como 0).

2) Os laços estão meio que trocados... Para conseguir a soma da linha, por exemplo, você não devia fazer o laço mais externo em cima do "j", mas sim do "i".

3) É mais prático colocar um laço dentro do outro. Imagina se fosse uma matriz 20x20? O trabalho que você teria de escrever as 20 somas...

/* Fazendo a soma das linhas e guardando no vetor a */
  for(i=0;i<5;i++)
    for(j=0,a[i]=0;j<5;j++) a[i] += m[i][j];
/* Fazendo a soma das colunas e guardando no vetor b */      
  for(j=0;j<5;j++)
    for(i=0,b[j]=0;i<5;i++) b[j] += m[i][j];

Até mais ;D

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...