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;
}
