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

Ajuda em C (MATRIZ)


leandrogsantana

Pergunta

Estou fazendo um trabalho de programação em C, usando o Codeblocks!
O trabalho consiste em criar ler uma matriz 5x5, efetuar a soma de todas as linhas e o resultado de cada linha jogar em uma posição em um vetor que deve ser criado, o mesmo para as colunas!
O programa funciona perfeitamente, mas quando mandou ele exibir o vetor das somas e das colunas, se eu colocar para mostrar o vetor das colunas primeiro, e vetor das linhas só mostra o valor 0 em todas as posições, o mesmo acontece se eu colocar o das linhas primeiro e o das colunas depois!

 
 
#include<stdio.h>
#include<stdlib.h>
#define N 5
 
int mat[N][N];
int vetcol[N], vetlin[N];
int linha, coluna, k=0, somalin=0, somacol=0;
 
 
int main(){
    printf("\n\t\t\t Vamos montar a matriz 5 x 5!!!");
    printf("\n\n");
 
    matriz();
    pula();
    somalinha();  // AQUI OCORRE O BUG
    pula();
    somacoluna();  // AQUI OCORRE O BUG
    pula();
    mostramatriz();
 
    pula();
    return 0;
}
 
void matriz(){
    //MONTA A MATRIZ
    for(linha=0; linha<5; linha++){ //  vai percorrer as linhas da matriz
        for(coluna=0; coluna<5; coluna++){ //  vai percorrer as colunas da matriz
            printf("Digite o valor correnpondente a posicao %d x %d da matriz: ", linha+1, coluna+1);
            scanf("%d", &mat[linha][coluna]);
        }
    }
}
 
void mostramatriz(){
    //MOTRA A MATRIZ DIGITADA
    printf("\t\t\t MATRIZ DIGITADA!! \n\n");
    for(linha=0; linha<5; linha++){
        for(coluna=0; coluna<5; coluna++){
            printf("%d \t", mat[linha][coluna]);
        }
        printf("\n");
     }
}
 
void somalinha(){
    for(linha=0; linha<5; linha++){
        for(coluna=0; coluna<5; coluna++){
            somalin+=mat[linha][coluna];
        }
        vetlin[k]=somalin;
        k++;
        somalin=0;
    }
 
    printf("Vetor de soma das linhas: ");
    for(k=0; k<5; k++){
        printf("%d ", vetlin[k]);
    }
}
 
void somacoluna(){
    for(coluna=0; coluna<5; coluna++){ // primeiro loop, onde ele pega a coluna
        for(linha=0; linha<5; linha++){ // segundo loop onde pega alinha e vai até o final antes de partir para próxima coluna
            somacol+=mat[linha][coluna];  // atribui a variável SOMACOL o valor de SOMACOL + MAT[linha][coluna]
        }
        vetcol[k]=somacol;  // atribui a variável VETCOL[k]  o valor da SOMACOL
        k++;
        somacol=0;
    }
 
    printf("Vetor de soma das colunas: ");
    for(k=0; k<5; k++){
        printf("%d ", vetcol[k]);
    }
}
 
void pula(){
    printf("\n\n");
}
 
 
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

A variável "k" não está sendo zerada, quando inicia as funções "somalinha()" e "somacoluna()".

Aconselho não trabalhar com variáveis globais. Utilizando variáveis dentro de contextos ou escopos (no seu caso, funções) e passando por parâmetros os valores que realmente deseja utilizar na próxima função, evita que erros desse tipo sejam tão simples de acontecer.

Att.

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