How to calculate the sum of each row of a matrix in C?

1

I need to create an algorithm that reads the dimensions of an array, read the values to be placed in the array, with a vector calculate the sum of the values of each line and print the array and vector.

This float soma computes the total sum of the entire array, but I need to calculate the sum of each line.

int main() {

    int L , C , linha = 0 , coluna = 0;
    float soma = 0;
    printf("\nDigite o numero de linhas da matriz: ");
    scanf("%d",&L);
    printf("\nDigite o numero de colunas da matriz: ");
    scanf("%d",&C);
    float matriz[L][C];


    for(linha = 0; linha < L; linha++){
        for(coluna = 0; coluna < C; coluna++){
            printf("\nDigite o %d valor para a %d linha: ",coluna + 1, linha + 1);
            scanf("%f",&matriz[linha][coluna]);
            soma = soma + matriz[linha][coluna];

        }
    }

    for (linha = 0; linha < L; linha++){
        for(coluna = 0; coluna < C; coluna++){
            printf("%5.2f ",matriz[linha][coluna]);
        }
            printf("\n\n");
    }



    printf("\n\nA soma total eh  %5.2f\n\n\n",soma);

    system("pause");
    return 0;
}
    
asked by anonymous 08.09.2018 / 17:46

1 answer

0

An array is required to save the rows. It should be the same size as the number of rows entered. Do not forget to clear the data. I did this with memset() . And there sum equal to the total, only in each element of the line. Then it prints all the elements.

#include <stdio.h>
#include <string.h>

int main() {
    int linhas , colunas;
    printf("\nDigite o numero de linhas da matriz: ");
    scanf("%d", &linhas);
    printf("\nDigite o numero de colunas da matriz: ");
    scanf("%d", &colunas);
    float matriz[linhas][colunas];
    float soma = 0;
    float somaLinhas[linhas];
    memset(somaLinhas, 0, sizeof(somaLinhas));
    for (int linha = 0; linha < linhas; linha++) {
        for (int coluna = 0; coluna < colunas; coluna++) {
            printf("\nDigite o %d valor para a %d linha: ", coluna + 1, linha + 1);
            scanf("%f", &matriz[linha][coluna]);
            soma += matriz[linha][coluna];
            somaLinhas[linha] += matriz[linha][coluna];
        }
    }
    printf("\n");
    for (int linha = 0; linha < linhas; linha++) {
        for (int coluna = 0; coluna < colunas; coluna++) printf("%5.2f ",matriz[linha][coluna]);
        printf("\n");
    }
    for (int linha = 0; linha < linhas; linha++) printf("\nA soma da linha %d eh %5.2f", linha, somaLinhas[linha]);
    printf("\nA soma total eh  %5.2f", soma);
}

See running on ideone . And in Coding Ground . Also I placed GitHub for future reference .

    
08.09.2018 / 17:58