aula 150

Como fazer uma função que calcule e retorne a soma de uma coluna da matriz?

Na aula anterior nós aprendemos como fazer um procedimento para imprimir uma matriz na tela e uma função para calcular e retornar a soma de uma linha de uma matriz local declarada na função main.

Nesta aula, além de fazer uma função para retornar a soma de uma coluna da matriz, vamos também mudar a matriz de lugar, vamos retirar nossa matriz local da função main e vamos transforma-la em uma matriz global.

Com esta alteração não será necessário enviar nossa matriz como parâmetro, uma vez que, uma variável global pode ser acessada em qualquer parte do programa.

A função para somar uma coluna é muito semelhante à função para somar uma linha. A diferença é que agora vamos fixar a coluna que desejamos somar e percorrer as linhas.

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

int tam = 5;
int mat[5][5];

// procedimento para imprimir uma matriz
void imprimir(){
    int i, j;
    for(i = 0; i < tam; i++){
        for(j = 0; j < tam; j++){
            printf("%2d ", mat[i][j]);
        }
        printf("\n");
    }
}

// função que calcula e retorna a soma de uma linha da matriz
int somarLinha(int l){
    int c, soma = 0;

    for(c = 0; c < tam; c++)
        soma += mat[l][c];
    return soma;
}

// função para retornar a soma de uma coluna da matriz
int somarColuna(int c){
    int l, soma = 0;

    for(l = 0; l < tam; l++)
        soma += mat[l][c];
    return soma;
}

int main() {

    int i, j;

    srand(time(NULL));

    for(i = 0; i < tam; i++){
        for(j = 0; j < tam; j++){
            mat[i][j] = rand() % 10;
        }
    }

    // imprime a matriz
    imprimir();

    printf("\n");
    // imprime a soma de todas as linhas da matriz
    for(i = 0; i < tam; i++)
        printf("Soma da linha %d: %d\n",i, somarLinha(i));

    printf("\n");
    // imprime a soma de todas as colunas de uma matriz
    for(i = 0; i < tam; i++)
        printf("Soma da coluna %d: %d\n",i, somarColuna(i));

    return 0;
}


Deixe um comentário

13 + 15 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.